| CMP0022 |
| ------- |
| |
| INTERFACE_LINK_LIBRARIES defines the link interface. |
| |
| CMake 2.8.11 constructed the 'link interface' of a target from |
| properties matching ``(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?``. |
| The modern way to specify config-sensitive content is to use generator |
| expressions and the ``IMPORTED_`` prefix makes uniform processing of the |
| link interface with generator expressions impossible. The |
| INTERFACE_LINK_LIBRARIES target property was introduced as a |
| replacement in CMake 2.8.12. This new property is named consistently |
| with the INTERFACE_COMPILE_DEFINITIONS, INTERFACE_INCLUDE_DIRECTORIES |
| and INTERFACE_COMPILE_OPTIONS properties. For in-build targets, CMake |
| will use the INTERFACE_LINK_LIBRARIES property as the source of the |
| link interface only if policy CMP0022 is NEW. When exporting a target |
| which has this policy set to NEW, only the INTERFACE_LINK_LIBRARIES |
| property will be processed and generated for the IMPORTED target by |
| default. A new option to the install(EXPORT) and export commands |
| allows export of the old-style properties for compatibility with |
| downstream users of CMake versions older than 2.8.12. The |
| target_link_libraries command will no longer populate the properties |
| matching LINK_INTERFACE_LIBRARIES(_<CONFIG>)? if this policy is NEW. |
| |
| Warning-free future-compatible code which works with CMake 2.8.7 onwards |
| can be written by using the ``LINK_PRIVATE`` and ``LINK_PUBLIC`` keywords |
| of :command:`target_link_libraries`. |
| |
| The OLD behavior for this policy is to ignore the |
| INTERFACE_LINK_LIBRARIES property for in-build targets. The NEW |
| behavior for this policy is to use the INTERFACE_LINK_LIBRARIES |
| property for in-build targets, and ignore the old properties matching |
| ``(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?``. |
| |
| This policy was introduced in CMake version 2.8.12. CMake version |
| |release| warns when the policy is not set and uses OLD behavior. Use |
| the cmake_policy command to set it to OLD or NEW explicitly. |
| |
| .. include:: DEPRECATED.txt |