diff options
author | Peter Kümmel <syntheticpp@gmx.net> | 2006-02-14 18:29:04 +0000 |
---|---|---|
committer | Peter Kümmel <syntheticpp@gmx.net> | 2006-02-14 18:29:04 +0000 |
commit | 5c9e190c949e5768e9ce1d5b630c6543ffc0050f (patch) | |
tree | 68cd7ad3295b2e6edeb5d8a7ed3622004a2b0897 | |
parent | 27c23eace05c4708938ba4c69e8ccc5ff110e4bb (diff) | |
download | extra-cmake-modules-5c9e190c949e5768e9ce1d5b630c6543ffc0050f.tar.gz extra-cmake-modules-5c9e190c949e5768e9ce1d5b630c6543ffc0050f.tar.bz2 |
prepare to use patched check_type_size macro, this is the original cmake version
svn path=/trunk/KDE/kdelibs/; revision=509446
-rwxr-xr-x | modules/CheckTypeSize.cmake | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/CheckTypeSize.cmake b/modules/CheckTypeSize.cmake new file mode 100755 index 00000000..35264956 --- /dev/null +++ b/modules/CheckTypeSize.cmake @@ -0,0 +1,52 @@ +# - Check sizeof a type
+# CHECK_TYPE_SIZE(TYPE VARIABLE)
+# Check if the type exists and determine size of type. if the type
+# exists, the size will be stored to the variable.
+#
+# VARIABLE - variable to store size if the type exists.
+# HAVE_${VARIABLE} - does the variable exists or not
+
+MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
+ SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1)
+ IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
+ SET(CHECK_TYPE_SIZE_TYPE "${TYPE}")
+ SET(MACRO_CHECK_TYPE_SIZE_FLAGS
+ "${CMAKE_REQUIRED_FLAGS}")
+ FOREACH(def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H)
+ IF("${def}")
+ SET(MACRO_CHECK_TYPE_SIZE_FLAGS
+ "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
+ ENDIF("${def}")
+ ENDFOREACH(def)
+ SET(CHECK_TYPE_SIZE_PREINCLUDE)
+ SET(CHECK_TYPE_SIZE_PREMAIN)
+ FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES})
+ SET(CHECK_TYPE_SIZE_PREMAIN "${CHECK_TYPE_SIZE_PREMAIN}#include \"${def}\"\n")
+ ENDFOREACH(def)
+ CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CheckTypeSize.c.in"
+ "${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckTypeSize.c" IMMEDIATE @ONLY)
+ FILE(READ "${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckTypeSize.c"
+ CHECK_TYPE_SIZE_FILE_CONTENT)
+ MESSAGE(STATUS "Check size of ${TYPE}")
+ IF(CMAKE_REQUIRED_LIBRARIES)
+ SET(CHECK_TYPE_SIZE_ADD_LIBRARIES
+ "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+ ENDIF(CMAKE_REQUIRED_LIBRARIES)
+ TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ "${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckTypeSize.c"
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
+ "${CHECK_TYPE_SIZE_ADD_LIBRARIES}"
+ OUTPUT_VARIABLE OUTPUT)
+ IF(HAVE_${VARIABLE})
+ MESSAGE(STATUS "Check size of ${TYPE} - done")
+ FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log
+ "Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n")
+ ELSE(HAVE_${VARIABLE})
+ MESSAGE(STATUS "Check size of ${TYPE} - failed")
+ FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+ "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\nCheckTypeSize.c:\n${CHECK_TYPE_SIZE_FILE_CONTENT}\n\n")
+ ENDIF(HAVE_${VARIABLE})
+ ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
+ SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS )
+ENDMACRO(CHECK_TYPE_SIZE)
|