Spec-Zone.ru › CMake 3.28

CMP0150

Новое в версии 3.27.

ExternalProject_Add() и FetchContent_Declare() команды обрабатывают относительные GIT_REPOSITORY пути как относительные к удалённому родительскому проекту.

Более ранние версии этих команд всегда обрабатывали относительные пути в GIT_REPOSITORY как локальные пути, но базовая директория, относительно которой они обрабатывались, была недокументирована и неинтуитивна. Поведение OLD для этой политики — интерпретировать относительные пути, используемые для GIT_REPOSITORY, как локальные пути, относительные к следующим:

  • Родительской директории SOURCE_DIR для ExternalProject_Add().
  • FETCHCONTENT_BASE_DIR для FetchContent_Declare().

Поведение NEW — определить удалённый ресурс родительского проекта и интерпретировать путь относительно этого удалённого ресурса. Значение CMAKE_CURRENT_SOURCE_DIR при вызове ExternalProject_Add() или FetchContent_Declare() определяет родительский проект. Удаленный ресурс выбирается в соответствии со следующим (используется первое совпадение):

  • Если родительский проект развернут на ветке с определенным удаленным ресурсом upstream, использовать этот удаленный ресурс.
  • Если определён только один удалённый ресурс, использовать его.
  • Если определены несколько удаленных ресурсов и один из них имеет имя origin, использовать удаленный ресурс origin, но также выдать предупреждение.

Если подходящий удаленный ресурс не может быть определен из вышеперечисленного, будет поднята ошибка.

Эта политика была введена в CMake версии 3.27. CMake версии 3.28.6 предупреждает при встрече относительного пути и отсутствии настройки политики, возвращаясь к поведению OLD. Используйте команду cmake_policy() для явного задания её на OLD или NEW.

Примечание

Поведение OLD политики deprecated by definition и может быть удалено в будущей версии CMake.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.28/policy/CMP0150.html

Spec-Zone.ru

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