Spec-Zone.ru › CMake 3.27

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

Spec-Zone.ru

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