Spec-Zone.ru › CMake 3.29

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() определяет родительский проект. Удалённый каталог выбирается в соответствии со следующим (используется первое совпадение):

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

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

Эта политика была введена в CMake версии 3.27. Она может быть установлена с помощью cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake выводит предупреждение при обнаружении относительного пути и использует поведение OLD.

Примечание

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

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

Spec-Zone.ru

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