compilers: unify functions for compiler facts

This commit is contained in:
Massimiliano Culpo 2023-03-09 09:23:46 +01:00
parent 9fadeaf0a2
commit b4db7de4c9
No known key found for this signature in database
GPG Key ID: 3E52BB992233066C

View File

@ -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()