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 19MACRO(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}) 31ENDMACRO(MACRO_PUSH_REQUIRED_VARS) 32 33MACRO(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 46ENDMACRO(MACRO_POP_REQUIRED_VARS) 47 48