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()