CMakePushCheckState
Этот модуль определяет три макроса: CMAKE_PUSH_CHECK_STATE() CMAKE_POP_CHECK_STATE() и CMAKE_RESET_CHECK_STATE() Эти макросы могут использоваться для сохранения, восстановления и сброса (т.е., очистки содержимого) состояния переменных CMAKE_REQUIRED_FLAGS, CMAKE_REQUIRED_DEFINITIONS, CMAKE_REQUIRED_LIBRARIES, CMAKE_REQUIRED_INCLUDES и CMAKE_EXTRA_INCLUDE_FILES, используемых различными файлами Check, поставляемыми с CMake, такими как, например, 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()
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.10/module/CMakePushCheckState.html