diff --git a/conan/tools/cmake/cmakedeps2/target_configuration.py b/conan/tools/cmake/cmakedeps2/target_configuration.py index dd3b7670a11..9af4ea6143f 100644 --- a/conan/tools/cmake/cmakedeps2/target_configuration.py +++ b/conan/tools/cmake/cmakedeps2/target_configuration.py @@ -154,7 +154,7 @@ def _get_libs(self, cpp_info, pkg_name, pkg_folder, pkg_folder_var) -> dict: return libs def _get_cmake_lib(self, info, components, pkg_folder, pkg_folder_var): - if info.exe or not (info.includedirs or info.libs): + if info.exe or not (info.includedirs or info.libs or info.system_libs): return includedirs = ";".join(self._path(i, pkg_folder, pkg_folder_var) diff --git a/test/integration/toolchains/cmake/cmakedeps2/test_cmakedeps.py b/test/integration/toolchains/cmake/cmakedeps2/test_cmakedeps.py index 83420d6d6e6..76f0aee4b64 100644 --- a/test/integration/toolchains/cmake/cmakedeps2/test_cmakedeps.py +++ b/test/integration/toolchains/cmake/cmakedeps2/test_cmakedeps.py @@ -152,3 +152,29 @@ class TestConan(ConanFile): assert "WARN: Using the new CMakeConfigDeps generator" in c.out c.run("install app -c tools.cmake.cmakedeps:new=recipe_will_break") assert "WARN: Using the new CMakeConfigDeps generator" in c.out + + +def test_system_wrappers(): + c = TestClient() + conanfile = textwrap.dedent(""" + import os + from conan.tools.files import copy + from conan import ConanFile + class TestConan(ConanFile): + name = "lib" + version = "system" + package_type = "shared-library" + + def package_info(self): + self.cpp_info.includedirs = [] + self.cpp_info.libdirs = [] + self.cpp_info.system_libs = ["my_system_cool_lib"] + """) + c.save({"conanfile.py": conanfile}) + c.run("create .") + + c.run(f"install --requires=lib/system -g CMakeConfigDeps " + f"-c tools.cmake.cmakedeps:new={new_value}") + cmake = c.load("lib-Targets-release.cmake") + assert "add_library(lib::lib INTERFACE IMPORTED)" in cmake + assert "target_link_libraries(lib::lib INTERFACE my_system_cool_lib)" in cmake