Help/prop_tgt/LINK_LIBRARY_OVERRIDE_LIBRARY.rst
.. versionadded:: 3.24
Override the library feature associated with <LIBRARY> from
:genex:LINK_LIBRARY generator expressions. This can be used to resolve
incompatible library features that result from specifying different features
for <LIBRARY> in different :genex:LINK_LIBRARY generator expressions.
When set on a target, this property holds a single library feature name, which
will be applied to <LIBRARY> when linking that target.
.. code-block:: cmake
add_library(lib1 ...) add_library(lib2 ...) add_library(lib3 ...)
target_link_libraries(lib1 PUBLIC "$<LINK_LIBRARY:feature1,external>") target_link_libraries(lib2 PUBLIC "$<LINK_LIBRARY:feature2,lib1>") target_link_libraries(lib3 PRIVATE lib1 lib2)
set_property(TARGET lib3 PROPERTY LINK_LIBRARY_OVERRIDE_lib1 feature2)
It is also possible to override any feature with the pre-defined DEFAULT
library feature. This effectively discards any feature for that link item,
for that target only (lib3 in this example):
.. code-block:: cmake
set_property(TARGET lib3 PROPERTY LINK_LIBRARY_OVERRIDE_lib1 DEFAULT)
See the :prop_tgt:LINK_LIBRARY_OVERRIDE target property for an alternative
way of overriding library features for multiple libraries at once. If both
properties are defined and specify an override for the same link item,
LINK_LIBRARY_OVERRIDE_<LIBRARY> takes precedence over
:prop_tgt:LINK_LIBRARY_OVERRIDE.
Contents of LINK_LIBRARY_OVERRIDE_<LIBRARY> may use
:manual:generator expressions <cmake-generator-expressions(7)>.
For more information about library features, see the
:variable:CMAKE_<LANG>_LINK_LIBRARY_USING_<FEATURE> and
:variable:CMAKE_LINK_LIBRARY_USING_<FEATURE> variables.