87f44b7525
In commit v3.5.0-rc1~43^2 (Fix export of STATIC library PRIVATE dependencies with CMP0022 NEW, 2016-01-15) we taught target_link_libraries to generate `$<LINK_ONLY:$<TARGET_NAME:dep>>` in INTERFACE_LINK_LIBRARIES instead of `$<LINK_ONLY:dep>` so that `dep` can be recognized as a target name and updated during export. However, this approach does not work when `dep` is just a plain library name and not a target because `$<TARGET_NAME:...>` requires the name of a reachable target. Since we do not know during target_link_libraries whether the name will correspond to a reachable target or not, we cannot inject the `$<TARGET_NAME:...>` expression. Revert this change and solve the original problem instead by teaching the export logic to recognize and update target names directly in `$<LINK_ONLY:...>` expressions. Reported-by: Ben Boeckel <ben.boeckel@kitware.com>
13 lines
319 B
CMake
13 lines
319 B
CMake
include(RunCMake)
|
|
|
|
run_cmake(CMP0023-WARN)
|
|
run_cmake(CMP0023-NEW)
|
|
run_cmake(CMP0023-WARN-2)
|
|
run_cmake(CMP0023-NEW-2)
|
|
run_cmake(MixedSignature)
|
|
run_cmake(Separate-PRIVATE-LINK_PRIVATE-uses)
|
|
run_cmake(SubDirTarget)
|
|
run_cmake(SharedDepNotTarget)
|
|
run_cmake(StaticPrivateDepNotExported)
|
|
run_cmake(StaticPrivateDepNotTarget)
|