Spec-Zone.ru › CMake

CMP0170

Добавлено в версии 3.30.

Если для FETCHCONTENT_FULLY_DISCONNECTED задано значение true, FetchContent_MakeAvailable() и FetchContent_Populate() требуют, чтобы каталог исходного кода уже был заполнен. Это требование всегда было задокументировано, но в CMake 3.29 и более ранних версиях оно не проверялось и не обеспечивалось. Иногда это приводило к трудноотслеживаемым ошибкам, когда проект ожидал, что зависимость будет заполнена, но её заполнение незаметно пропускалось.

В CMake 3.30 и более поздних версиях предпочтительно проверять и обеспечивать выполнение этого требования. Эта политика обеспечивает совместимость в ситуациях, когда пользователь не может легко предотвратить некорректную установку FETCHCONTENT_FULLY_DISCONNECTED в значение true.

Поведение OLD этой политики позволяет задать для FETCHCONTENT_FULLY_DISCONNECTED значение true, даже если каталог исходного кода зависимости не был заполнен. Поведение NEW приводит к фатальной ошибке, если для FETCHCONTENT_FULLY_DISCONNECTED задано значение true, заполнение зависимости будет пропущено, а каталог исходного кода этой зависимости не существует.

Эта политика появилась в CMake версии 3.30. Её можно установить с помощью 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/CMP0170.html

Spec-Zone.ru

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