Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions conan/tools/cmake/cmakedeps/templates/target_configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,9 @@ def get_deps_targets_names(self):
# dependencies, maybe it has been filtered out by traits => Skip
pass
else:
if dep_name == component_name:
# Depends on all components in `dep_name` package
component_name = req.ref.name.split("/")[0]
component_name = self.get_component_alias(req, component_name)
ret.append(component_name)
elif transitive_reqs:
Expand Down
3 changes: 3 additions & 0 deletions conan/tools/cmake/cmakedeps/templates/target_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,9 @@ def _get_required_components_cpp(self):
except KeyError: # The transitive dep might have been skipped
pass
else:
if required_pkg == required_comp:
# Depends on all components in `required_pkg` package
required_comp = req.ref.name.split("/")[0]
public_comp_deps.append(self.get_component_alias(req, required_comp))
else: # Points to a component of same package
public_comp_deps.append(self.get_component_alias(self.conanfile, required_comp))
Expand Down
2 changes: 1 addition & 1 deletion test/integration/graph/test_replace_requires.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ def package_info(self):
if name == "zlib-ng":
# CMakeDeps can not be used to consume replaced requires for different packages
# only CMakeConfigDeps has this capability
c.run("install --requires=app/0.1 -pr=profile -g CMakeDeps", assert_error=True)
c.run("install --requires=app/0.1 -pr=profile -g CMakeDeps")


def test_replace_requires_consumer_references_error_multiple():
Expand Down