CMakePushCheckState¶
此模块定义三个宏:CMAKE_PUSH_CHECK_STATE()
CMAKE_POP_CHECK_STATE()
和 CMAKE_RESET_CHECK_STATE()
这些宏可以用于存储、恢复和重置(即清除内容)变量的状态 CMAKE_REQUIRED_FLAGS
、CMAKE_REQUIRED_DEFINITIONS
、CMAKE_REQUIRED_LINK_OPTIONS
、CMAKE_REQUIRED_LIBRARIES
、CMAKE_REQUIRED_LINK_DIRECTORIES
、CMAKE_REQUIRED_INCLUDES
和 CMAKE_EXTRA_INCLUDE_FILES
这些变量由附带 CMake 的各个 Check 文件使用,例如check_function_exists()
等。将变量内容推送至堆栈中,支持多次推送。当在 Find 模块中执行此类测试时很有用,此时必须设置这些测试,但在 Find 模块执行完毕后,这些测试应具有与先前相同的数值。
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()