You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.9 KiB
38 lines
1.9 KiB
11 years ago
|
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.9 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.
|