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 версии 3.17.5 выдает предупреждение, если политика не установлена, и использует OLD поведение. Используйте команду cmake_policy(), чтобы установить ее явно в OLD или NEW.
Примечание
Поведение OLD политики — deprecated by definition, и оно может быть удалено в будущих версиях CMake.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/policy/CMP0022.html