summaryrefslogtreecommitdiffstats
path: root/config/cmake_ext_mod/CheckTypeSize.cmake
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2015-08-20 17:03:29 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2015-08-20 17:03:29 (GMT)
commit1b2b0bd5a30cbc4227457abd08f563a8fd8c8b68 (patch)
treef3e820daa24477263f5fc3efd43bf459865f260b /config/cmake_ext_mod/CheckTypeSize.cmake
parent1436a07905193713568304dd00b26ca18e982e6f (diff)
downloadhdf5-1b2b0bd5a30cbc4227457abd08f563a8fd8c8b68.zip
hdf5-1b2b0bd5a30cbc4227457abd08f563a8fd8c8b68.tar.gz
hdf5-1b2b0bd5a30cbc4227457abd08f563a8fd8c8b68.tar.bz2
[svn-r27540] Replace svn:externals with hard copy of files
Diffstat (limited to 'config/cmake_ext_mod/CheckTypeSize.cmake')
-rw-r--r--config/cmake_ext_mod/CheckTypeSize.cmake50
1 files changed, 50 insertions, 0 deletions
diff --git a/config/cmake_ext_mod/CheckTypeSize.cmake b/config/cmake_ext_mod/CheckTypeSize.cmake
new file mode 100644
index 0000000..5095a27
--- /dev/null
+++ b/config/cmake_ext_mod/CheckTypeSize.cmake
@@ -0,0 +1,50 @@
+#
+# 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}
+ ${HDF_RESOURCES_EXT_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)