Spec-Zone.ru › CMake 3.31

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.31/policy/CMP0150.html

Spec-Zone.ru

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