cmake_file_api
Новое в версии 3.27.
Включает взаимодействие с CMake file API.
-
cmake_file_api(QUERY ...) -
Подкоманда
QUERYдобавляет запрос к API файлов для текущего вызова CMake.cmake_file_api( QUERY API_VERSION <version> [CODEMODEL <versions>...] [CACHE <versions>...] [CMAKEFILES <versions>...] [TOOLCHAINS <versions>...] )
Ключ
API_VERSIONдолжен всегда быть указан. В настоящее время единственное поддерживаемое значение для<version>равно 1. Подробности о содержании и местоположении ответа см. в API v1.Каждый из необязательных ключей
CODEMODEL,CACHE,CMAKEFILESиTOOLCHAINSсоответствует одному из типов объектов, которые может запросить проект. Тип объектаconfigureLogне может быть задан с помощью этой команды, так как он должен быть задан до начала чтения CMake верхнего уровняCMakeLists.txtфайла.Для каждого необязательного ключа список
<versions>должен содержать один или несколько значений версии видаmajorилиmajor.minor, гдеmajorиminor— целые числа. Проекты должны перечислять поддерживаемые версии в порядке предпочтения, так как будет выбран только первый поддерживаемый вариант из списка. Команда проигнорирует версии сmajorверсией, превышающей любую основную версию, которую она поддерживает для данного типа объекта. Она выведет ошибку, если обнаружит неверный номер версии или если ни одна из запрошенных версий не поддерживается.Для каждого типа запрошенного объекта внутренне будет добавлен эквивалентный общий, бессостоятельный запрос. Файл запроса не будет создан в файловой системе. Ответ будет записан в файловую систему во время генерации.
Добавление запроса для одного и того же объекта более одного раза, как из файлов запросов, так и из нескольких вызовов
cmake_file_api(QUERY), не является ошибкой. Окончательный набор запросов будет представлять собой объединенную комбинацию всех запросов, указанных в файлах и переданных проектом.
Пример
Проект может захотеть использовать ответы от API файлов во время сборки для реализации какой-либо проверки. Вместо того, чтобы полагаться на что-то за пределами CMake для создания файла запроса, проект может использовать cmake_file_api(QUERY) для запроса необходимой информации для текущего запуска. Затем он может создать пользовательскую команду для выполнения во время сборки, зная, что запрошенная информация всегда будет доступна.
cmake_file_api(
QUERY
API_VERSION 1
CODEMODEL 2.3
TOOLCHAINS 1
)
add_custom_target(verify_project
COMMAND ${CMAKE_COMMAND}
-D BUILD_DIR=${CMAKE_BINARY_DIR}
-D CONFIG=$<CONFIG>
-P ${CMAKE_CURRENT_SOURCE_DIR}/verify_project.cmake
)
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/command/cmake_file_api.html