1
# this module defines two macros:
2
# MACRO_PUSH_REQUIRED_VARS()
4
# MACRO_POP_REQUIRED_VARS()
5
# use these if you call cmake macros which use
6
# any of the CMAKE_REQUIRED_XXX variables
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()
14
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
16
# Redistribution and use is allowed according to the terms of the BSD license.
17
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
19
macro(MACRO_PUSH_REQUIRED_VARS)
21
if(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER)
22
set(_PUSH_REQUIRED_VARS_COUNTER 0)
25
math(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}+1")
27
if(DEFINED CMAKE_REQUIRED_INCLUDES)
28
set(_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_INCLUDES})
30
if(DEFINED CMAKE_REQUIRED_DEFINITIONS)
31
set(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS})
33
if(DEFINED CMAKE_REQUIRED_LIBRARIES)
34
set(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_LIBRARIES})
36
if(DEFINED CMAKE_REQUIRED_FLAGS)
37
set(_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_FLAGS})
39
endmacro(MACRO_PUSH_REQUIRED_VARS)
41
macro(MACRO_POP_REQUIRED_VARS)
43
# don't pop more than we pushed
44
if("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0")
45
if(DEFINED _CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER})
46
set(CMAKE_REQUIRED_INCLUDES ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
48
if(DEFINED _CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER})
49
set(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
51
if(DEFINED _CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER})
52
set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
54
if(DEFINED _CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER})
55
set(CMAKE_REQUIRED_FLAGS ${_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}})
58
math(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}-1")
61
endmacro(MACRO_POP_REQUIRED_VARS)