CMP0169
Добавлена в версии 3.30.
Вызов FetchContent_Populate() с одним аргументом (имя объявленной зависимости) устарел.
До появления FetchContent_MakeAvailable(), проекты заполняли ранее объявленное содержимое (с помощью FetchContent_Declare()) по следующему шаблону:
FetchContent_GetProperties(depname)
if(NOT depname_POPULATED)
FetchContent_Populate(depname)
add_subdirectory(${depname_SOURCE_DIR} ${depname_BINARY_DIR})
endif()
Указанный шаблон не поддерживает ряд функций, добавленных в FetchContent со временем. Он игнорирует такие параметры, как SYSTEM и EXCLUDE_FROM_ALL, которые могут быть переданы в FetchContent_Declare(), но не могут быть переданы коду проекта. Он также не поддерживает поставщиков зависимостей. Проекты должны вызывать FetchContent_MakeAvailable() вместо использования указанного шаблона.
CMake 3.30 и выше предпочитает отклонять вызовы FetchContent_Populate() с именем объявленной зависимости. Эта политика обеспечивает совместимость для проектов, которые не были обновлены для вызова FetchContent_MakeAvailable() вместо этого.
Поведение OLD этой политики позволяет FetchContent_Populate() вызываться с именем объявленной зависимости. Поведение NEW прекращает работу с ошибкой fatal в таких случаях.
Примечание
Вызов FetchContent_Populate() с полными подробностями заполнения в качестве аргументов команды вместо просто имени зависимости полностью поддерживается. Только форма вызова FetchContent_Populate() с одним аргументом (имя ранее объявленной зависимости) устарела с этой политикой.
Эта политика была введена в версии CMake 3.30. Ее можно задать с помощью 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/latest/policy/CMP0169.html