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