summaryrefslogtreecommitdiff
path: root/libs/assimp/test/headercheck/CMakeLists.txt
blob: b77e023a8260270a2647243206f8bb346442d8a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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()

add_custom_target(headercheck DEPENDS ${headerchecklibs})

endif()