Spec-Zone.ru › CMake 3.27

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 версии 3.27.9 предупреждает при обнаружении относительного пути, когда политика не задана, возвращаясь к использованию 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.27/policy/CMP0150.html

Spec-Zone.ru

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