Spec-Zone.ru › CMake 3.12

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) и export позволяет экспортировать свойства старого стиля для совместимости с пользователями CMake, версия которых старше 2.8.12. Команда target_link_libraries больше не будет заполнять свойства, соответствующие LINK_INTERFACE_LIBRARIES(_<CONFIG>)? если эта политика установлена в NEW.

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

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

Эта политика была введена в CMake версии 2.8.12. CMake версии 3.12.4 предупреждает, если политика не установлена, и использует старое поведение. Используйте команду cmake_policy, чтобы явно установить её в OLD или NEW.

Примечание

Поведение политики OLD deprecated by definition и может быть удалено в будущей версии CMake.

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

Spec-Zone.ru

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