Skip to content

Add usage requirements to update direct link dependencies

Brad King requested to merge brad.king/cmake:link-interface-direct into master

Link line construction starts with LINK_LIBRARIES and appends dependencies from the transitive closure of INTERFACE_LINK_LIBRARIES. Only the entries of LINK_LIBRARIES are considered direct link dependencies. In some advanced use cases, particularly involving static libraries and static plugins, usage requirements need to update the list of direct link dependencies. This may mean adding new items, removing existing items, or both.

Add target properties to encode these usage requirements:

  • INTERFACE_LINK_LIBRARIES_DIRECT
  • INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE

Fixes: #22496 (closed)
Issue: #18090

Edited by Brad King

Merge request reports