diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2015-08-27 17:06:54 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2015-08-27 17:06:54 (GMT) |
commit | c365b9a59fb706f1943edf851586bb6f67688368 (patch) | |
tree | 2fbe7d176f9a36bc689a05b11451e8a59daf239b /config/cmake_ext_mod/CheckTypeSize.cmake | |
parent | 3c5a088df0afced706a07c92df46494741a2c9ae (diff) | |
parent | a9c28bac4e6822321c8a7a81784526201a2d6b09 (diff) | |
download | hdf5-c365b9a59fb706f1943edf851586bb6f67688368.zip hdf5-c365b9a59fb706f1943edf851586bb6f67688368.tar.gz hdf5-c365b9a59fb706f1943edf851586bb6f67688368.tar.bz2 |
[svn-r27593] Merge revisions 27453 through 27592 from trunk to vds branch.
Tested: ummon
Diffstat (limited to 'config/cmake_ext_mod/CheckTypeSize.cmake')
-rw-r--r-- | config/cmake_ext_mod/CheckTypeSize.cmake | 50 |
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) |