Help/prop_tgt/LINK_LIBRARY_OVERRIDE.rst
.. versionadded:: 3.24
Override the library features associated with libraries from
:genex:LINK_LIBRARY generator expressions. This can be used to resolve
incompatible library features that result from specifying different features
for the same library in different :genex:LINK_LIBRARY generator expressions.
This property supports overriding multiple libraries and features. It expects
a :ref:semicolon-separated list <CMake Language Lists>, where each list item
has the following form::
feature[,link-item]*
For each comma-separated link-item, any existing library feature associated
with it will be ignored for the target this property is set on. The item
will instead be associated with the specified feature. Each link-item
can be anything that would be accepted as part of a library-list in a
:genex:LINK_LIBRARY generator expression.
.. 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 "feature2,lib1,external")
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 "DEFAULT,lib1" "feature2,external" )
The above example also demonstrates how to specify different feature overrides
for different link items. See the :prop_tgt:LINK_LIBRARY_OVERRIDE_<LIBRARY>
target property for an alternative way of overriding library features for
individual libraries, which may be simpler in some cases. If both properties
are defined and specify an override for the same link item,
:prop_tgt:LINK_LIBRARY_OVERRIDE_<LIBRARY> takes precedence over
LINK_LIBRARY_OVERRIDE.
Contents of LINK_LIBRARY_OVERRIDE 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.