aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-06-18 18:58:23 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-06-18 18:58:23 +0000
commitf20cd1e4876fe5277f42e54561690495cb24d417 (patch)
tree6cf87bd03d1b03e708205be51fb0c59d9c9e3898
parentd1502894bdccc2e40ea81aadede9040899c514bb (diff)
downloadextra-cmake-modules-f20cd1e4876fe5277f42e54561690495cb24d417.tar.gz
extra-cmake-modules-f20cd1e4876fe5277f42e54561690495cb24d417.tar.bz2
-macro_push_required_vars() and macro_pop_required_vars() for guarding cmake's check_something_exists() macros
Alex svn path=/trunk/KDE/kdelibs/; revision=552675
-rw-r--r--modules/MacroLibrary.cmake1
-rw-r--r--modules/MacroPushRequiredVars.cmake28
2 files changed, 29 insertions, 0 deletions
diff --git a/modules/MacroLibrary.cmake b/modules/MacroLibrary.cmake
index ce741f7b..c4006c27 100644
--- a/modules/MacroLibrary.cmake
+++ b/modules/MacroLibrary.cmake
@@ -6,3 +6,4 @@ INCLUDE(MacroAdditionalCleanFiles)
INCLUDE(MacroAddFileDependencies)
INCLUDE(MacroEnsureOutOfSourceBuild)
INCLUDE(MacroBoolTo01)
+INCLUDE(MacroPushRequiredVars)
diff --git a/modules/MacroPushRequiredVars.cmake b/modules/MacroPushRequiredVars.cmake
new file mode 100644
index 00000000..34ff0e9f
--- /dev/null
+++ b/modules/MacroPushRequiredVars.cmake
@@ -0,0 +1,28 @@
+# this module defines two macros:
+# MACRO_PUSH_REQUIRED_VARS()
+# and
+# MACRO_POP_REQUIRED_VARS()
+# use these if you call cmake macros which use
+# any of the CMAKE_REQUIRED_XXX variables
+#
+# Usage:
+# MACRO_PUSH_REQUIRED_VARS()
+# SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -DSOME_MORE_DEF)
+# CHECK_FUNCTION_EXISTS(...)
+# MACRO_POP_REQUIRED_VARS()
+#
+
+MACRO(MACRO_PUSH_REQUIRED_VARS)
+ SET(_CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES})
+ SET(_CMAKE_REQUIRED_DEFINITIONS_SAVE ${CMAKE_REQUIRED_DEFINITIONS})
+ SET(_CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES})
+ SET(_CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS})
+ENDMACRO(MACRO_PUSH_REQUIRED_VARS)
+
+MACRO(MACRO_POP_REQUIRED_VARS)
+ SET(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE})
+ SET(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE})
+ SET(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE})
+ SET(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE})
+ENDMACRO(MACRO_POP_REQUIRED_VARS)
+