Spec-Zone.ru › CMake 3.29

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

Spec-Zone.ru

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