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