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_policy() или cmake_minimum_required(). Если она не задана, CMake выдаёт предупреждение при обнаружении относительного пути и использует поведение OLD.
Примечание
Поведение OLD политики по определению считается устаревшим и может быть удалено в будущей версии CMake.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0150.html