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, используемых различными файлами проверки, входящими в 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.11/module/CMakePushCheckState.html