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