-
- Downloads
Fix export of STATIC library PRIVATE dependencies with CMP0022 NEW
The target_link_libraries command records the PRIVATE dependencies of a
STATIC library in INTERFACE_LINK_LIBRARIES as "$<LINK_ONLY:dep>". This
hides the target name from export namespacing logic inside a generator
expression. When user-written generator expressions reference a target
name they must put it inside a "$<TARGET_NAME:dep>" expression to allow
the export logic to rename the target. In the case that the private
dependency is not already a generator expression, target_link_libraries
must use "$<LINK_ONLY:$<TARGET_NAME:dep>>" to allow the export logic to
rename the target.
Reported-by:
Tamás Kenéz <tamas.kenez@gmail.com>
Showing
- Source/cmTargetLinkLibrariesCommand.cxx 5 additions, 2 deletionsSource/cmTargetLinkLibrariesCommand.cxx
- Tests/ExportImport/Export/CMakeLists.txt 6 additions, 0 deletionsTests/ExportImport/Export/CMakeLists.txt
- Tests/ExportImport/Export/testLibDepends.c 6 additions, 1 deletionTests/ExportImport/Export/testLibDepends.c
- Tests/ExportImport/Export/testStaticLibRequiredPrivate.c 1 addition, 0 deletionsTests/ExportImport/Export/testStaticLibRequiredPrivate.c
Please register or sign in to comment