summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2002-11-21 15:11:46 (GMT)
committerBrad King <brad.king@kitware.com>2002-11-21 15:11:46 (GMT)
commit9a98c1680340660502318e192edcc799e1c64302 (patch)
tree1aee4d8e33a84d6ad9ada783346cd2ac98451ba0 /Modules
parenta7da3d4efffa930d50d6db8f549850d4d3ace4b3 (diff)
downloadCMake-9a98c1680340660502318e192edcc799e1c64302.zip
CMake-9a98c1680340660502318e192edcc799e1c64302.tar.gz
CMake-9a98c1680340660502318e192edcc799e1c64302.tar.bz2
ENH: Added CHECK_VARIABLE_EXISTS macro.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CheckVariableExists.c16
-rw-r--r--Modules/CheckVariableExists.cmake23
2 files changed, 39 insertions, 0 deletions
diff --git a/Modules/CheckVariableExists.c b/Modules/CheckVariableExists.c
new file mode 100644
index 0000000..e4d1e8d
--- /dev/null
+++ b/Modules/CheckVariableExists.c
@@ -0,0 +1,16 @@
+#ifdef CHECK_VARIABLE_EXISTS
+
+extern int CHECK_VARIABLE_EXISTS;
+
+int main()
+{
+ int* p;
+ p = &CHECK_VARIABLE_EXISTS;
+ return 0;
+}
+
+#else /* CHECK_VARIABLE_EXISTS */
+
+# error "CHECK_VARIABLE_EXISTS has to specify the variable"
+
+#endif /* CHECK_VARIABLE_EXISTS */
diff --git a/Modules/CheckVariableExists.cmake b/Modules/CheckVariableExists.cmake
new file mode 100644
index 0000000..daa87a0
--- /dev/null
+++ b/Modules/CheckVariableExists.cmake
@@ -0,0 +1,23 @@
+#
+# Check if the variable exists.
+# # CHECK_VARIABLE_EXISTS - macro which checks if the variable exists
+# VAR - the name of the variable
+# VARIABLE - variable to store the result
+#
+
+MACRO(CHECK_VARIABLE_EXISTS VAR VARIABLE)
+ SET(MACRO_CHECK_VARIABLE_DEFINITIONS -DCHECK_VARIABLE_EXISTS=${VAR})
+ TRY_COMPILE(${VARIABLE}
+ ${PROJECT_BINARY_DIR}
+ ${CMAKE_ROOT}/Modules/CheckVariableExists.c
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_VARIABLE_DEFINITIONS}
+ OUTPUT_VARIABLE OUTPUT)
+ IF(${VARIABLE})
+ SET(${VARIABLE} 1 CACHE INTERNAL "Have variable ${VAR}")
+ ELSE(${VARIABLE})
+ SET(${VARIABLE} "" CACHE INTERNAL "Have variable ${VAR}")
+ WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log
+ "Determining if the variable ${VAR} exists failed with the following output:\n"
+ "${OUTPUT}\n" APPEND)
+ ENDIF(${VARIABLE})
+ENDMACRO(CHECK_VARIABLE_EXISTS)