Spec-Zone.ru › CMake

CMP0022

Предупреждение

Поведение OLD этой политики было удалено в CMake версии 4.0. Эта политика должна быть установлена в NEW вызовом cmake_minimum_required() или cmake_policy().

INTERFACE_LINK_LIBRARIES определяет интерфейс компоновки.

В CMake 2.8.11 «интерфейс компоновки» цели формировался из свойств, соответствующих (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?. Современный способ указания содержимого, зависящего от конфигурации, — использование генераторных выражений, а префикс IMPORTED_ делает невозможной единообразную обработку интерфейса компоновки с помощью генераторных выражений. Свойство цели INTERFACE_LINK_LIBRARIES было введено в качестве замены в CMake 2.8.12. Это новое свойство получило имя, согласованное с именами свойств INTERFACE_COMPILE_DEFINITIONS, INTERFACE_INCLUDE_DIRECTORIES и INTERFACE_COMPILE_OPTIONS. Для целей, собираемых в текущей сборке, CMake будет использовать свойство INTERFACE_LINK_LIBRARIES в качестве источника интерфейса компоновки только в том случае, если политика CMP0022 установлена в NEW. При экспорте цели, для которой эта политика установлена в NEW, по умолчанию будет обрабатываться и генерироваться только свойство INTERFACE_LINK_LIBRARIES для цели IMPORTED. Новая опция команд install(EXPORT) и export позволяет экспортировать свойства старого формата для совместимости с пользователями CMake более ранних версий, чем 2.8.12. Команда target_link_libraries() больше не будет заполнять свойства, соответствующие LINK_INTERFACE_LIBRARIES(_<CONFIG>)?, если для этой политики установлено значение NEW.

Код, не вызывающий предупреждений и совместимый с будущими версиями, который работает начиная с CMake 2.8.7, можно написать, используя ключевые слова LINK_PRIVATE и LINK_PUBLIC команды target_link_libraries().

Поведение OLD для этой политики заключается в игнорировании свойства INTERFACE_LINK_LIBRARIES для целей, собираемых в текущей сборке. Поведение NEW для этой политики заключается в использовании свойства INTERFACE_LINK_LIBRARIES для целей, собираемых в текущей сборке, и игнорировании старых свойств, соответствующих (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?.

Эта политика была введена в CMake версии 2.8.12. До ее удаления в CMake версии 4.0 ее можно было установить с помощью cmake_policy() или cmake_minimum_required(). Если она не была установлена, CMake выдавал предупреждение и использовал поведение OLD.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0022.html

Spec-Zone.ru

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