new internal hot buffers list
[quassel.git] / cmake / modules / MacroPushRequiredVars.cmake
1 # this module defines two macros:
2 # MACRO_PUSH_REQUIRED_VARS()
3 # and
4 # MACRO_POP_REQUIRED_VARS()
5 # use these if you call cmake macros which use
6 # any of the CMAKE_REQUIRED_XXX variables
7 #
8 # Usage:
9 # MACRO_PUSH_REQUIRED_VARS()
10 # SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -DSOME_MORE_DEF)
11 # CHECK_FUNCTION_EXISTS(...)
12 # MACRO_POP_REQUIRED_VARS()
13
14 # Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
15 #
16 # Redistribution and use is allowed according to the terms of the BSD license.
17 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
18
19 MACRO(MACRO_PUSH_REQUIRED_VARS)
20
21    IF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER)
22       SET(_PUSH_REQUIRED_VARS_COUNTER 0)
23    ENDIF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER)
24
25    MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}+1")
26
27    SET(_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}    ${CMAKE_REQUIRED_INCLUDES})
28    SET(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS})
29    SET(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}   ${CMAKE_REQUIRED_LIBRARIES})
30    SET(_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}       ${CMAKE_REQUIRED_FLAGS})
31 ENDMACRO(MACRO_PUSH_REQUIRED_VARS)
32
33 MACRO(MACRO_POP_REQUIRED_VARS)
34
35 # don't pop more than we pushed
36    IF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0")
37
38       SET(CMAKE_REQUIRED_INCLUDES    ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
39       SET(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
40       SET(CMAKE_REQUIRED_LIBRARIES   ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
41       SET(CMAKE_REQUIRED_FLAGS       ${_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
42
43       MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}-1")
44    ENDIF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0")
45
46 ENDMACRO(MACRO_POP_REQUIRED_VARS)
47