From b4db7de4c9366b761874345cebabda61c617292c Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Thu, 9 Mar 2023 09:23:46 +0100 Subject: [PATCH] compilers: unify functions for compiler facts --- lib/spack/spack/solver/asp.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index fbda6e3a46d..8bee9d8557c 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -942,7 +942,7 @@ def conflict_rules(self, pkg): self.gen.fact(fn.conflict(pkg.name, trigger_id, constraint_id, conflict_msg)) self.gen.newline() - def available_compilers(self): + def compiler_facts(self): """Facts about available compilers.""" self.gen.h2("Available compilers") @@ -950,8 +950,7 @@ def available_compilers(self): self.gen.fact(fn.compiler_version(compiler.name, compiler.version)) self.gen.newline() - def compiler_defaults(self): - """Set compiler defaults, given a list of possible compilers.""" + # Set compiler defaults, given a list of possible compilers self.gen.h2("Default compiler preferences") ppk = spack.package_prefs.PackagePrefs("all", "compiler", all=False) @@ -966,6 +965,9 @@ def compiler_defaults(self): for entry in spack.compilers.all_compilers_config(): compiler_entry = entry["compiler"] cspec = spack.spec.CompilerSpec(compiler_entry["spec"]) + operating_system = compiler_entry["operating_system"] + self.gen.fact(fn.compiler_supports_os(cspec.name, cspec.version, operating_system)) + if not compiler_entry.get("target", None): continue @@ -973,13 +975,6 @@ def compiler_defaults(self): fn.compiler_supports_target(cspec.name, cspec.version, compiler_entry["target"]) ) - def compiler_supports_os(self): - compilers_yaml = spack.compilers.all_compilers_config() - for entry in compilers_yaml: - c = spack.spec.CompilerSpec(entry["compiler"]["spec"]) - operating_system = entry["compiler"]["operating_system"] - self.gen.fact(fn.compiler_supports_os(c.name, c.version, operating_system)) - def package_compiler_defaults(self, pkg): """Facts about packages' compiler prefs.""" @@ -2095,9 +2090,7 @@ def setup(self, driver, specs, reuse=None): self._facts_from_concrete_spec(reusable_spec, possible) self.gen.h1("General Constraints") - self.available_compilers() - self.compiler_defaults() - self.compiler_supports_os() + self.compiler_facts() # architecture defaults self.platform_defaults()