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.30/policy/CMP0150.html