summaryrefslogtreecommitdiff
path: root/Modules/CheckSizeOf.cmake
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2002-09-20 13:16:50 -0400
committerAndy Cedilnik <andy.cedilnik@kitware.com>2002-09-20 13:16:50 -0400
commit76e9af1575cf264e5af6e825c0af4da80be0b3e2 (patch)
tree549c8f2870f8403b788c676657aeb114ea7027cc /Modules/CheckSizeOf.cmake
parent157e2b4ac3a067107561d4ccc2b08ea3555cce44 (diff)
downloadcmake-76e9af1575cf264e5af6e825c0af4da80be0b3e2.tar.gz
Add two commonly used modules. First one checks if the function exists, the second one checks the size of type
Diffstat (limited to 'Modules/CheckSizeOf.cmake')
-rw-r--r--Modules/CheckSizeOf.cmake21
1 files changed, 21 insertions, 0 deletions
diff --git a/Modules/CheckSizeOf.cmake b/Modules/CheckSizeOf.cmake
new file mode 100644
index 0000000000..8f1b122d7b
--- /dev/null
+++ b/Modules/CheckSizeOf.cmake
@@ -0,0 +1,21 @@
+#
+# 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)
+ TRY_RUN(RUN_RESULT COMPILE_OK
+ ${PROJECT_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/CheckSizeOf.c
+ COMPILE_DEFINITIONS -DCHECK_SIZE_OF="${TYPE}"
+ OUTPUT_VARIABLE OUTPUT)
+ IF(COMPILE_OK)
+ SET(${VARIABLE} ${RUN_RESULT})
+ ELSE(COMPILE_OK)
+ WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log
+ "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n")
+ ENDIF(COMPILE_OK)
+ENDMACRO(CHECK_TYPE_SIZE)