Spec-Zone.ru › CMake 3.31

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API