summaryrefslogtreecommitdiffstats
path: root/Help/policy/CMP0022.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Help/policy/CMP0022.rst')
-rw-r--r--Help/policy/CMP0022.rst33
1 files changed, 33 insertions, 0 deletions
diff --git a/Help/policy/CMP0022.rst b/Help/policy/CMP0022.rst
new file mode 100644
index 0000000..78c688a
--- /dev/null
+++ b/Help/policy/CMP0022.rst
@@ -0,0 +1,33 @@
+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.
+
+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.