diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-01-01 23:00:49 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-01-01 23:00:49 (GMT) |
commit | de00883c41b82cdceb48b37fe3838f5b2911c832 (patch) | |
tree | 683eda85b3641c7907fdd8a76c4899cbcea484ee /Modules/CheckIncludeFiles.cmake | |
parent | 87143969279deac183544fb35949687ea8871597 (diff) | |
download | CMake-de00883c41b82cdceb48b37fe3838f5b2911c832.zip CMake-de00883c41b82cdceb48b37fe3838f5b2911c832.tar.gz CMake-de00883c41b82cdceb48b37fe3838f5b2911c832.tar.bz2 |
Add macro for checking if a swequence of includes can be includes
Diffstat (limited to 'Modules/CheckIncludeFiles.cmake')
-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) |