diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CheckIncludeFiles.cmake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Modules/CheckIncludeFiles.cmake b/Modules/CheckIncludeFiles.cmake new file mode 100644 index 0000000..642fb01 --- /dev/null +++ b/Modules/CheckIncludeFiles.cmake @@ -0,0 +1,40 @@ +# +# Check if the files can be included +# +# CHECK_INCLUDE_FILES - macro which checks the include file exists. +# INCLUDE - list of files to include +# VARIABLE - variable to return result +# + +MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CHECK_INCLUDE_FILES_CONTENT "/* */\n") + STRING(ASCII 35 POUND) + STRING(ASCII 40 41 PARENTS) + FOREACH(FILE ${INCLUDE}) + SET(CHECK_INCLUDE_FILES_CONTENT + "${CHECK_INCLUDE_FILES_CONTENT}${POUND}include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CHECK_INCLUDE_FILES_CONTENT + "${CHECK_INCLUDE_FILES_CONTENT}\n\nvoid main${PARENTS}{}\n") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFiles.c + "${CHECK_INCLUDE_FILES_CONTENT}") + + MESSAGE(STATUS "Looking for set of ${INCLUDE}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFiles.c + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for set of ${INCLUDE} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for set of ${INCLUDE} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}") + WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + "Determining if files ${INCLUDE} " + "exist failed with the following output:\n" + "${OUTPUT}\n" APPEND) + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_INCLUDE_FILES) |