Spec-Zone.ru › CMake 3.29

CMP0022

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) и экспорта позволяет экспортировать свойства старого стиля для совместимости с пользователями 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_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.29/policy/CMP0022.html

Spec-Zone.ru

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