Back to Cmake

INTERFACE_LINK_LIBRARIES

Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst

4.3.21.8 KB
Original Source

List public interface libraries for a library.

This property contains the list of transitive link dependencies. When the target is linked into another target using the :command:target_link_libraries command, the libraries listed (and recursively their link interface libraries) will be provided to the other target also. This property is overridden by the :prop_tgt:LINK_INTERFACE_LIBRARIES or :prop_tgt:LINK_INTERFACE_LIBRARIES_<CONFIG> property if policy :policy:CMP0022 is OLD or unset.

The value of this property is used by the generators when constructing the link rule for a dependent target. A dependent target's direct link dependencies, specified by its :prop_tgt:LINK_LIBRARIES target property, are linked first, followed by indirect dependencies from the transitive closure of the direct dependencies' INTERFACE_LINK_LIBRARIES properties. See policy :policy:CMP0022.

Contents of INTERFACE_LINK_LIBRARIES may use "generator expressions" with the syntax $<...>. See the :manual:cmake-generator-expressions(7) manual for available expressions. See the :manual:cmake-buildsystem(7) manual for more on defining buildsystem properties.

.. include:: include/LINK_LIBRARIES_INDIRECTION.rst

INTERFACE_LINK_LIBRARIES adds transitive link dependencies for a target's dependents. In advanced use cases, one may update the direct link dependencies of a target's dependents by using the :prop_tgt:INTERFACE_LINK_LIBRARIES_DIRECT and :prop_tgt:INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE target properties.

.. include:: ../command/include/LINK_LIBRARIES_LINKER.rst

Creating Relocatable Packages ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. |INTERFACE_PROPERTY_LINK| replace:: INTERFACE_LINK_LIBRARIES .. include:: /include/INTERFACE_LINK_LIBRARIES_WARNING.rst