summaryrefslogtreecommitdiff
path: root/Modules/CheckTypeSize.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2002-12-30 11:02:31 -0500
committerBrad King <brad.king@kitware.com>2002-12-30 11:02:31 -0500
commitea1467d056f4b0e646376f4dc5091dec397a46a8 (patch)
tree1f16c81824978fb66273aa1cc844f3ec68b0c45e /Modules/CheckTypeSize.cmake
parent6e4712d6ed606205f9ca4bb5aa2de8ad19c480a7 (diff)
downloadcmake-ea1467d056f4b0e646376f4dc5091dec397a46a8.tar.gz
ENH: Renamed Modules/CheckSizeOf to Modules/CheckTypeSize for consistency with the macro name that is defined by the module.
Diffstat (limited to 'Modules/CheckTypeSize.cmake')
-rw-r--r--Modules/CheckTypeSize.cmake34
1 files changed, 34 insertions, 0 deletions
diff --git a/Modules/CheckTypeSize.cmake b/Modules/CheckTypeSize.cmake
new file mode 100644
index 0000000000..35dcaaa81f
--- /dev/null
+++ b/Modules/CheckTypeSize.cmake
@@ -0,0 +1,34 @@
+#
+# 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.
+#
+
+MACRO(CHECK_TYPE_SIZE TYPE VARIABLE)
+ IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
+ SET(MACRO_CHECK_TYPE_SIZE_FLAGS -DCHECK_TYPE_SIZE_TYPE="${TYPE}")
+ IF(HAVE_SYS_TYPES_H)
+ SET(MACRO_CHECK_TYPE_SIZE_FLAGS
+ "${MACRO_CHECK_TYPE_SIZE_FLAGS} -DHAVE_SYS_TYPES_H")
+ ENDIF(HAVE_SYS_TYPES_H)
+ IF(HAVE_STDINT_H)
+ SET(MACRO_CHECK_TYPE_SIZE_FLAGS "${MACRO_CHECK_TYPE_SIZE_FLAGS} -DHAVE_STDINT_H")
+ ENDIF(HAVE_STDINT_H)
+ MESSAGE(STATUS "Check size of ${TYPE}")
+ TRY_RUN(${VARIABLE} HAVE_${VARIABLE}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/CheckTypeSize.c
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
+ OUTPUT_VARIABLE OUTPUT)
+ IF(HAVE_${VARIABLE})
+ MESSAGE(STATUS "Check size of ${TYPE} - done")
+ ELSE(HAVE_${VARIABLE})
+ MESSAGE(STATUS "Check size of ${TYPE} - failed")
+ WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
+ "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n"
+ APPEND)
+ ENDIF(HAVE_${VARIABLE})
+ ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
+ENDMACRO(CHECK_TYPE_SIZE)