Spec-Zone.ru › CMake 3.31

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 прерывается с ошибкой в таких случаях.

Примечание

Вызов 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/v3.31/policy/CMP0169.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API