add option ASSIMP_HEADERCHECK (defaults to off):

when enabled it adds the target "headercheck" to verify if all headers compile
pull/536/head
abma 2015-04-15 21:06:40 +02:00
parent 873ae5db3f
commit 7e9c48e1ae
4 changed files with 46 additions and 0 deletions

View File

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

1
test/headercheck/.gitignore vendored 100644
View File

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

View File

@ -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()

View File

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