Prechádzať zdrojové kódy

add option ASSIMP_HEADERCHECK (defaults to off):
when enabled it adds the target "headercheck" to verify if all headers compile

abma 10 rokov pred
rodič
commit
7e9c48e1ae

+ 2 - 0
test/CMakeLists.txt

@@ -59,3 +59,5 @@ target_link_libraries( unit assimp
 	debug ${GTEST_DEBUG_LIBRARIES}
 	optimized ${GTEST_RELEASE_LIBRARIES}
 )
+add_subdirectory(headercheck)
+

+ 1 - 0
test/headercheck/.gitignore

@@ -0,0 +1 @@
+src-generated/

+ 37 - 0
test/headercheck/CMakeLists.txt

@@ -0,0 +1,37 @@
+# This file is part of the Spring engine (GPL v2 or later), see LICENSE.html
+
+OPTION(ASSIMP_HEADERCHECK "adds the target headercheck which compiles every header file, default disabled because it adds many targets" OFF)
+if(ASSIMP_HEADERCHECK)
+include_directories(
+		${Assimp_SOURCE_DIR}/code/BoostWorkaround
+	)
+
+FILE(GLOB_RECURSE headers
+		${Assimp_SOURCE_DIR}/code/*.h
+	)
+
+set(headerchecklibs "")
+
+FOREACH( HEADER ${headers} )
+
+	#pseudo unique name
+	string(REPLACE "${Spring_SOURCE_DIR}" "" PLIST "${HEADER}")
+	string(REPLACE "/" ";" PLIST "${PLIST}")
+	SET(TEST_NAME "headercheck_")
+
+	foreach(name ${PLIST})
+		SET(TEST_NAME "${TEST_NAME}_${name}")
+	endforeach()
+
+	SET(TEST_FILE ${CMAKE_CURRENT_BINARY_DIR}/src-generated/${TEST_NAME}.cpp)
+
+	# create test file
+	configure_file( headercheck.cpp.in ${TEST_FILE} )
+	# add library
+	add_library( ${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_FILE} )
+	list(APPEND headerchecklibs ${TEST_NAME})
+ENDFOREACH( HEADER )
+
+add_custom_target(headercheck DEPENDS ${headerchecklibs})
+
+endif()

+ 6 - 0
test/headercheck/headercheck.cpp.in

@@ -0,0 +1,6 @@
+#include "@HEADER@"
+
+int main(int,char**)
+{
+	return 0;
+}