summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2020-12-13 17:20:47 -0800
committerTodd Gamblin <tgamblin@llnl.gov>2020-12-20 07:00:46 -0800
commit87a9e1c9512fdc36d70ce3d7c766080d8e427588 (patch)
treed32646dca71d4a6d5114de34299f1e4d99c9b1e6 /lib
parent950fb0948b6f7159cfd24ada521261581585994a (diff)
downloadspack-87a9e1c9512fdc36d70ce3d7c766080d8e427588.tar.gz
spack-87a9e1c9512fdc36d70ce3d7c766080d8e427588.tar.bz2
spack-87a9e1c9512fdc36d70ce3d7c766080d8e427588.tar.xz
spack-87a9e1c9512fdc36d70ce3d7c766080d8e427588.zip
concretizer: pull _develop_specs_from_env out of main setup loop
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/solver/asp.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py
index 1b59337a09..1546939f9f 100644
--- a/lib/spack/spack/solver/asp.py
+++ b/lib/spack/spack/solver/asp.py
@@ -1412,6 +1412,13 @@ class SpackSolverSetup(object):
self.preferred_targets(pkg)
self.preferred_versions(pkg)
+ # Inject dev_path from environment
+ env = spack.environment.get_env(None, None)
+ if env:
+ for spec in sorted(specs):
+ for dep in spec.traverse():
+ _develop_specs_from_env(dep, env)
+
self.gen.h1('Spec Constraints')
for spec in sorted(specs):
if not spec.virtual:
@@ -1421,10 +1428,6 @@ class SpackSolverSetup(object):
for dep in spec.traverse():
self.gen.h2('Spec: %s' % str(dep))
-
- # Inject dev_path from environment
- _develop_specs_from_env(dep)
-
if dep.virtual:
for clause in self.virtual_spec_clauses(dep):
self.gen.fact(clause)
@@ -1636,8 +1639,9 @@ class SpecBuilder(object):
for s in self._specs.values():
spack.spec.Spec.ensure_external_path_if_external(s)
+ env = spack.environment.get_env(None, None)
for s in self._specs.values():
- _develop_specs_from_env(s)
+ _develop_specs_from_env(s, env)
for s in self._specs.values():
s._mark_concrete()
@@ -1648,8 +1652,7 @@ class SpecBuilder(object):
return self._specs
-def _develop_specs_from_env(spec):
- env = spack.environment.get_env(None, None)
+def _develop_specs_from_env(spec, env):
dev_info = env.dev_specs.get(spec.name, {}) if env else {}
if not dev_info:
return