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.31/command/cmake_file_api.html