diff --git a/Source/cmPackageInfoReader.cxx b/Source/cmPackageInfoReader.cxx index 621df4d668..9bab7a7c23 100644 --- a/Source/cmPackageInfoReader.cxx +++ b/Source/cmPackageInfoReader.cxx @@ -801,6 +801,10 @@ void cmPackageInfoReader::SetTargetProperties( configuration, NormalizeTargetName(dep, package)); } + for (std::string const& lib : ReadList(data, "link_libraries")) { + AppendProperty(makefile, target, "LINK_LIBRARIES"_s, configuration, lib); + } + // TODO: Handle non-configuration modules // once IMPORTED_CXX_MODULES supports it if (!configuration.empty()) { diff --git a/Tests/FindPackageCpsTest/CMakeLists.txt b/Tests/FindPackageCpsTest/CMakeLists.txt index 861aaa78c1..c26368372c 100644 --- a/Tests/FindPackageCpsTest/CMakeLists.txt +++ b/Tests/FindPackageCpsTest/CMakeLists.txt @@ -225,6 +225,10 @@ target_link_libraries(requires-test RequiresTest::Indirect) add_executable(requires-test-compile_only requires-test.cxx) target_link_libraries(requires-test-compile_only RequiresTest::CompileOnly) +expect_property( + RequiresTest::Other INTERFACE_LINK_LIBRARIES + "link libraries" "every-config;$<$:test-config>") + expect_property( RequiresTest::Other IMPORTED_LINK_DEPENDENT_LIBRARIES "dyld requirements (any config)" "RequiresTest::Private1") diff --git a/Tests/FindPackageCpsTest/cps/RequiresTest.cps b/Tests/FindPackageCpsTest/cps/RequiresTest.cps index 8e635dd53a..3a6affb5e5 100644 --- a/Tests/FindPackageCpsTest/cps/RequiresTest.cps +++ b/Tests/FindPackageCpsTest/cps/RequiresTest.cps @@ -36,9 +36,11 @@ }, "Other": { "type": "dylib", + "link_libraries": [ "every-config" ], "dyld_requires": [ ":Private1" ], "configurations": { "test": { + "link_libraries": [ "test-config" ], "dyld_requires": [ ":Private2" ] } }