CMakePushCheckState

该模块定义了三个宏:CMAKE_PUSH_CHECK_STATE() CMAKE_POP_CHECK_STATE() 和``CMAKE_RESET_CHECK_STATE()`` 这些宏可用于保存、恢复和重置(即清除内容)变量的状态``cmake_required_flags`,cmake_required_definitions'像Cmake一样的Iles,例如``check_function_exists()` 等变量内容入栈,支持多次入栈。这很有用,例如在 Find-module 中执行此类测试时,必须在其中设置它们,但在执行 Find-module 之后,它们应该具有与之前相同的值。

CMAKE_PUSH_CHECK_STATE() 宏接收可选参数 RESET。无论是否指定,CMAKE_PUSH_CHECK_STATE() 都会将所有``CMAKE_REQUIRED_*`` 变量设置为空值,与``CMAKE_RESET_CHECK_STATE()`` 调用一样。

用法:

cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_DEFINITIONS -DSOME_MORE_DEF)
check_function_exists(...)
cmake_reset_check_state()
set(CMAKE_REQUIRED_DEFINITIONS -DANOTHER_DEF)
check_function_exists(...)
cmake_pop_check_state()