CMP0022¶
警告
該方針的 OLD 行為已在 CMake 版本 4.0 中移除。該方針必須透過呼叫 cmake_minimum_required() 或 cmake_policy() 設定為 NEW。
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 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>)?.
此方針於 CMake 版本 2.8.12 中引入。在 CMake 版本 4.0 移除之前,它可以透過 cmake_policy() 或 cmake_minimum_required() 設定。如果未設定,CMake warned,並使用 OLD 行為。