CMake/Tests/InterfaceLinkLibrariesDirect
Brad King 41a6b4a53b INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY
In commit f3ad061858 (Add usage requirements to update direct link
dependencies, 2022-01-12, v3.23.0-rc1~44^2), we evaluated the transitive
closure of `INTERFACE_LINK_LIBRARIES` as a non-linking usage requirement.
That left out `INTERFACE_LINK_LIBRARIES_DIRECT` link dependencies that
appear behind private dependencies of a static library, guarded by the
`$<LINK_ONLY:...>` generator expression.  At the time, that decision was
intentional, in order to prevent arbitrary usage requirements from
leaking out of `PRIVATE` dependencies.

Since then, we've revised evaluation of `LINK_LIBRARIES` to distinguish
between collecting link dependencies and other usage requirements.  Use
that information when following `INTERFACE_LINK_LIBRARIES` to collect
the matching kind of requirements from `INTERFACE_LINK_LIBRARIES_DIRECT`.

Fixes: #22496
2022-03-22 11:57:48 -04:00
..
a_always.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
a_not_direct_from_A_for_exe.c
a_not_direct_from_A_optional.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
a_not_direct_from_A.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
a_poison_direct_from_A_for_exe.c
a_poison_direct_from_A_optional.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
a_poison_direct_from_A.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
CMakeLists.txt INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY 2022-03-22 11:57:48 -04:00
direct_from_A_for_exe_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
direct_from_A_for_exe.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
direct_from_A_optional_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
direct_from_A_optional.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
direct_from_A_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
direct_from_A.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
exe_use_static_A_private.c INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY 2022-03-22 11:57:48 -04:00
exe_use_static_A_public_explicit.c INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY 2022-03-22 11:57:48 -04:00
exe_use_static_A_public.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
ExePlugin.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
main.c
order_A.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_B_poison.c
order_B.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_C_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_C.c
order_D_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_D.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_E_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_E.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_F_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_F.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_G_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_G.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_H_poison.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_H.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_I_poison.c
order_I.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
order_J_poison.c
order_J.c
order_main.c
static_A_private.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
static_A_public.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testExePluginHelperObj.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testExeWithPluginHelper.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testExeWithPluginHelper.cmake Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testSharedLibHelperObj.c
testSharedLibWithHelper.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testSharedLibWithHelper.cmake Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibPlugin.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibPlugin.cmake Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibPluginExtra.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibWithPlugin1.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibWithPlugin2.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibWithPluginBad1.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
testStaticLibWithPluginBad2.c Add usage requirements to update direct link dependencies 2022-01-29 06:48:13 -05:00
UseSharedLibWithHelper.c