diff options
| -rw-r--r-- | modules/MacroPushRequiredVars.cmake | 31 | 
1 files changed, 23 insertions, 8 deletions
diff --git a/modules/MacroPushRequiredVars.cmake b/modules/MacroPushRequiredVars.cmake index 2c8ec4e5..650b566e 100644 --- a/modules/MacroPushRequiredVars.cmake +++ b/modules/MacroPushRequiredVars.cmake @@ -17,16 +17,31 @@  # For details see the accompanying COPYING-CMAKE-SCRIPTS file.  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}) + +   IF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER) +      SET(_PUSH_REQUIRED_VARS_COUNTER 0) +   ENDIF(NOT DEFINED _PUSH_REQUIRED_VARS_COUNTER) + +   MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}+1") + +   SET(_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}    ${CMAKE_REQUIRED_INCLUDES}) +   SET(_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER} ${CMAKE_REQUIRED_DEFINITIONS}) +   SET(_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}   ${CMAKE_REQUIRED_LIBRARIES}) +   SET(_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}       ${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}) + +# don't pop more than we pushed +   IF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0") + +      SET(CMAKE_REQUIRED_INCLUDES    ${_CMAKE_REQUIRED_INCLUDES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}}) +      SET(CMAKE_REQUIRED_DEFINITIONS ${_CMAKE_REQUIRED_DEFINITIONS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}}) +      SET(CMAKE_REQUIRED_LIBRARIES   ${_CMAKE_REQUIRED_LIBRARIES_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}}) +      SET(CMAKE_REQUIRED_FLAGS       ${_CMAKE_REQUIRED_FLAGS_SAVE_${_PUSH_REQUIRED_VARS_COUNTER}}) + +      MATH(EXPR _PUSH_REQUIRED_VARS_COUNTER "${_PUSH_REQUIRED_VARS_COUNTER}-1") +   ENDIF("${_PUSH_REQUIRED_VARS_COUNTER}" GREATER "0") +  ENDMACRO(MACRO_POP_REQUIRED_VARS)  | 
