summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-06-22 10:42:40 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2023-08-15 15:54:37 -0700
commitae553051c8bbcecceaed7a7e3898db01cfc2566a (patch)
tree9837a154b6ae8d55638c58b755ab8f6fdf591346 /lib
parentb94e22b28419a13978cf2c86b3b7700bbb9d2601 (diff)
downloadspack-ae553051c8bbcecceaed7a7e3898db01cfc2566a.tar.gz
spack-ae553051c8bbcecceaed7a7e3898db01cfc2566a.tar.bz2
spack-ae553051c8bbcecceaed7a7e3898db01cfc2566a.tar.xz
spack-ae553051c8bbcecceaed7a7e3898db01cfc2566a.zip
Extract a function to emit variant rules
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/solver/asp.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py
index b602cdb6d4..0522cfc4fc 100644
--- a/lib/spack/spack/solver/asp.py
+++ b/lib/spack/spack/solver/asp.py
@@ -1130,6 +1130,29 @@ class SpackSolverSetup:
self.gen.newline()
# variants
+ self.variant_rules(pkg)
+
+ # conflicts
+ self.conflict_rules(pkg)
+
+ # default compilers for this package
+ self.package_compiler_defaults(pkg)
+
+ # virtuals
+ self.package_provider_rules(pkg)
+
+ # dependencies
+ self.package_dependencies_rules(pkg)
+
+ # virtual preferences
+ self.virtual_preferences(
+ pkg.name,
+ lambda v, p, i: self.gen.fact(fn.facts(pkg.name, fn.provider_preference(v, p, i))),
+ )
+
+ self.package_requirement_rules(pkg)
+
+ def variant_rules(self, pkg):
for name, entry in sorted(pkg.variants.items()):
variant, when = entry
@@ -1220,26 +1243,6 @@ class SpackSolverSetup:
self.gen.newline()
- # conflicts
- self.conflict_rules(pkg)
-
- # default compilers for this package
- self.package_compiler_defaults(pkg)
-
- # virtuals
- self.package_provider_rules(pkg)
-
- # dependencies
- self.package_dependencies_rules(pkg)
-
- # virtual preferences
- self.virtual_preferences(
- pkg.name,
- lambda v, p, i: self.gen.fact(fn.facts(pkg.name, fn.provider_preference(v, p, i))),
- )
-
- self.package_requirement_rules(pkg)
-
def condition(self, required_spec, imposed_spec=None, name=None, msg=None, node=False):
"""Generate facts for a dependency or virtual provider condition.