From bb65d495d954a0abaf4b4ca4d948967f8d5a6d47 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 21 Jan 2025 18:58:36 +0100 Subject: [PATCH] Fix setting build dependencies of a build dependency from cli --- lib/spack/spack/solver/concretize.lp | 5 +++-- lib/spack/spack/test/concretization/flag_mixing.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index 45d3ab9fdef..e523ede0249 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -470,10 +470,11 @@ provider(ProviderNode, VirtualNode) :- attr("provider_set", ProviderNode, Virtua % root ^dep %compiler % % where "compiler" is a dependency of "dep", but is enforced by a condition imposed by "root" -1 { attr("depends_on", node(min_dupe_id, A1), node(0..Y-1, A2), A3) : max_dupes(A2, Y) } 1 +1 { attr("depends_on", node(A1_DUPE_ID, A1), node(0..Y-1, A2), A3) : max_dupes(A2, Y) } 1 :- impose(ID, RootNode), unification_set("root", RootNode), - unification_set("root", node(min_dupe_id, A1)), + condition_set(RootNode, node(A1_DUPE_ID, A1)), + not self_build_requirement(RootNode, node(A1_DUPE_ID, A1)), imposed_constraint(ID, "depends_on", A1, A2, A3), internal_error("Build deps must land in exactly one duplicate"). diff --git a/lib/spack/spack/test/concretization/flag_mixing.py b/lib/spack/spack/test/concretization/flag_mixing.py index 9a98a7819d3..2b6e0dd9744 100644 --- a/lib/spack/spack/test/concretization/flag_mixing.py +++ b/lib/spack/spack/test/concretization/flag_mixing.py @@ -116,7 +116,7 @@ def test_pkg_flags_from_compiler_and_none(concretize_scope, mock_packages): concrete = dict(spack.concretize.concretize_together([(s1, None), (s2, None)])) assert concrete[s1].compiler_flags["cflags"] == ["-Wall"] - assert concrete[s2].compiler_flags["cflags"] == [] + assert concrete[s2]["cmake"].compiler_flags["cflags"] == [] @pytest.mark.parametrize(