diff options
author | Alexander Neundorf <neundorf@kde.org> | 2006-02-03 22:00:11 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2006-02-03 22:00:11 +0000 |
commit | 0f0ed599605523734c61287f9e2f68061b068951 (patch) | |
tree | 60d11b8432a1bb13c6f1eb5a56f5a01c1b47fc77 /modules/CheckIncludeFiles.cmake | |
parent | ec20af3748c658bd51630c39a4426950b9ca8270 (diff) | |
download | extra-cmake-modules-0f0ed599605523734c61287f9e2f68061b068951.tar.gz extra-cmake-modules-0f0ed599605523734c61287f9e2f68061b068951.tar.bz2 |
-major overhaul of the windows stuff: kdelibs/win/ is now built as a regular part of the build process
-an improved version of CheckIncludeFiles.cmake has been added, which takes additional include directories as argument
-the check for the KDE4_LIB_DIR was wrong, it returned libkxmlcore.so instead of the directory
-fix the header install commands for the win/include/ stuff
Alex
svn path=/trunk/KDE/kdelibs/; revision=505455
Diffstat (limited to 'modules/CheckIncludeFiles.cmake')
-rw-r--r-- | modules/CheckIncludeFiles.cmake | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/CheckIncludeFiles.cmake b/modules/CheckIncludeFiles.cmake new file mode 100644 index 00000000..8d1b0fb3 --- /dev/null +++ b/modules/CheckIncludeFiles.cmake @@ -0,0 +1,63 @@ +# - Check if the files can be included +# +# CHECK_INCLUDE_FILES(INCLUDE VARIABLE) +# +# INCLUDE - list of files to include +# VARIABLE - variable to return result +# +# If CMAKE_REQUIRED_FLAGS is set then those flags will be passed into the +# compile of the program +# additionally to the original cmake module this one uses CMAKE_REQUIRED_INCLUDES +# where you can specify a directory which will be added to the include path + +MACRO(CHECK_INCLUDE_FILES INCLUDE VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS ) +# IF(CMAKE_REQUIRED_INCLUDES) +# SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS +# "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") +# ENDIF(CMAKE_REQUIRED_INCLUDES) + + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS -DINCLUDE_DIRECTORIES=) + FOREACH(_inc_DIR ${CMAKE_REQUIRED_INCLUDES}) + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS "${CHECK_INCLUDE_FILES_INCLUDE_DIRS}${_inc_DIR}\;") + ENDFOREACH(_inc_DIR ${CMAKE_REQUIRED_INCLUDES}) + SET(CHECK_INCLUDE_FILES_INCLUDE_DIRS "${CHECK_INCLUDE_FILES_INCLUDE_DIRS} ") + + SET(CHECK_INCLUDE_FILES_CONTENT "/* */\n") + SET(MACRO_CHECK_INCLUDE_FILES_FLAGS ${CMAKE_REQUIRED_FLAGS}) + FOREACH(FILE ${INCLUDE}) + SET(CHECK_INCLUDE_FILES_CONTENT + "${CHECK_INCLUDE_FILES_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CHECK_INCLUDE_FILES_CONTENT + "${CHECK_INCLUDE_FILES_CONTENT}\n\nint main(){return 0;}\n") + FILE(WRITE ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckIncludeFiles.c + "${CHECK_INCLUDE_FILES_CONTENT}") + + MESSAGE(STATUS "Looking for include files ${VARIABLE}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckIncludeFiles.c + CMAKE_FLAGS +# -DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDE_DIR} + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILES_FLAGS} + ${CHECK_INCLUDE_FILES_INCLUDE_DIRS} + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for include files ${VARIABLE} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${VARIABLE}") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeFiles/CMakeOutput.log + "Determining if files ${INCLUDE} " + "exist passed with the following output:\n" + "${OUTPUT}\n\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for include files ${VARIABLE} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have includes ${VARIABLE}") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log + "Determining if files ${INCLUDE} " + "exist failed with the following output:\n" + "${OUTPUT}\nSource:\n${CHECK_INCLUDE_FILES_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_INCLUDE_FILES) |