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