From fbdf9d9e0120c5dcdb3fd1f6573ec321449919bc Mon Sep 17 00:00:00 2001 From: Gregory Becker Date: Tue, 29 Apr 2025 21:59:41 -0700 Subject: [PATCH] spack solve: respect unify:false config Signed-off-by: Gregory Becker --- lib/spack/spack/cmd/solve.py | 41 ++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/lib/spack/spack/cmd/solve.py b/lib/spack/spack/cmd/solve.py index cd210348ab5..a7bb2719c23 100644 --- a/lib/spack/spack/cmd/solve.py +++ b/lib/spack/spack/cmd/solve.py @@ -136,20 +136,7 @@ def solve(parser, args): setup_only = set(show) == {"asp"} unify = spack.config.get("concretizer:unify") allow_deprecated = spack.config.get("config:deprecated", False) - if unify != "when_possible": - # set up solver parameters - # Note: reuse and other concretizer prefs are passed as configuration - result = solver.solve( - specs, - out=output, - timers=args.timers, - stats=args.stats, - setup_only=setup_only, - allow_deprecated=allow_deprecated, - ) - if not setup_only: - _process_result(result, show, required_format, kwargs) - else: + if unify == "when_possible": for idx, result in enumerate( solver.solve_in_rounds( specs, @@ -166,3 +153,29 @@ def solve(parser, args): print("% END ROUND {0}\n".format(idx)) if not setup_only: _process_result(result, show, required_format, kwargs) + elif unify: + # set up solver parameters + # Note: reuse and other concretizer prefs are passed as configuration + result = solver.solve( + specs, + out=output, + timers=args.timers, + stats=args.stats, + setup_only=setup_only, + allow_deprecated=allow_deprecated, + ) + if not setup_only: + _process_result(result, show, required_format, kwargs) + else: + for spec in specs: + print("SOLVING SPEC:", spec) + result = solver.solve( + [spec], + out=output, + timers=args.timers, + stats=args.stats, + setup_only=setup_only, + allow_deprecated=allow_deprecated, + ) + if not setup_only: + _process_result(result, show, required_format, kwargs)