From de00883c41b82cdceb48b37fe3838f5b2911c832 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Wed, 1 Jan 2003 18:00:49 -0500 Subject: [PATCH] Add macro for checking if a swequence of includes can be includes --- Modules/CheckIncludeFiles.cmake | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Modules/CheckIncludeFiles.cmake diff --git a/Modules/CheckIncludeFiles.cmake b/Modules/CheckIncludeFiles.cmake new file mode 100644 index 000000000..642fb0193 --- /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)