summaryrefslogtreecommitdiffstats
path: root/config/cmake/CheckTypeSize.cmake
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2010-07-20 15:29:38 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2010-07-20 15:29:38 (GMT)
commitc00ba4b1229c79aacf041678a9c667dad2791784 (patch)
tree355cf0be823410eedde7bd65fa463fc92736c57e /config/cmake/CheckTypeSize.cmake
parenta67794b1bc35421f1267133a6f7b447db2a71a3a (diff)
downloadhdf5-c00ba4b1229c79aacf041678a9c667dad2791784.zip
hdf5-c00ba4b1229c79aacf041678a9c667dad2791784.tar.gz
hdf5-c00ba4b1229c79aacf041678a9c667dad2791784.tar.bz2
[svn-r19107] Move Resources folder to config/cmake
Tested: Local Linux
Diffstat (limited to 'config/cmake/CheckTypeSize.cmake')
-rw-r--r--config/cmake/CheckTypeSize.cmake48
1 files changed, 48 insertions, 0 deletions
diff --git a/config/cmake/CheckTypeSize.cmake b/config/cmake/CheckTypeSize.cmake
new file mode 100644
index 0000000..eca6e76
--- /dev/null
+++ b/config/cmake/CheckTypeSize.cmake
@@ -0,0 +1,48 @@
+#
+# Check if the type exists and determine size of type. if the type
+# exists, the size will be stored to the variable.
+#
+# CHECK_TYPE_SIZE - macro which checks the size of type
+# VARIABLE - variable to store size if the type exists.
+# HAVE_${VARIABLE} - does the variable exists or not
+#
+
+MACRO (HDF_CHECK_TYPE_SIZE TYPE VARIABLE)
+ SET (CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1)
+ IF ("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
+ SET (MACRO_CHECK_TYPE_SIZE_FLAGS
+ "-DCHECK_TYPE_SIZE_TYPE=\"${TYPE}\" ${CMAKE_REQUIRED_FLAGS}"
+ )
+ FOREACH (def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H HAVE_INTTYPES_H)
+ IF ("${def}")
+ SET (MACRO_CHECK_TYPE_SIZE_FLAGS "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
+ ENDIF("${def}")
+ ENDFOREACH (def)
+
+ 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}
+ ${HDF5_RESOURCES_DIR}/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}\n\n"
+ )
+ ENDIF (HAVE_${VARIABLE})
+ ENDIF ("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$")
+ SET (CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS)
+ENDMACRO (HDF_CHECK_TYPE_SIZE)