summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2024-08-22 12:13:08 +0200
committerGitHub <noreply@github.com>2024-08-22 12:13:08 +0200
commit836be2364ca62e01e89ac07c8e18b19949fc43b4 (patch)
tree887e78d2c6a4a858037561e335e3c42043c6f048 /var
parentb623f58782c53bc465d14b84b44e91ffc2b872cd (diff)
downloadspack-836be2364ca62e01e89ac07c8e18b19949fc43b4.tar.gz
spack-836be2364ca62e01e89ac07c8e18b19949fc43b4.tar.bz2
spack-836be2364ca62e01e89ac07c8e18b19949fc43b4.tar.xz
spack-836be2364ca62e01e89ac07c8e18b19949fc43b4.zip
Make spack compiler find use external find (#45784)
so that there is no duplicate detection logic for compilers
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/gcc/package.py12
-rw-r--r--var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py9
2 files changed, 19 insertions, 2 deletions
diff --git a/var/spack/repos/builtin.mock/packages/gcc/package.py b/var/spack/repos/builtin.mock/packages/gcc/package.py
index 05518419dd..fa2b0309ff 100644
--- a/var/spack/repos/builtin.mock/packages/gcc/package.py
+++ b/var/spack/repos/builtin.mock/packages/gcc/package.py
@@ -16,11 +16,23 @@ class Gcc(CompilerPackage, Package):
version("2.0", md5="abcdef0123456789abcdef0123456789")
version("3.0", md5="def0123456789abcdef0123456789abc")
+ variant(
+ "languages",
+ default="c,c++,fortran",
+ values=("c", "c++", "fortran"),
+ multi=True,
+ description="Compilers and runtime libraries to build",
+ )
+
depends_on("conflict", when="@3.0")
c_names = ["gcc"]
cxx_names = ["g++"]
fortran_names = ["gfortran"]
+ compiler_prefixes = [r"\w+-\w+-\w+-"]
+ compiler_suffixes = [r"-mp-\d+(?:\.\d+)?", r"-\d+(?:\.\d+)?", r"\d\d"]
+ compiler_version_regex = r"(?<!clang version)\s?([0-9.]+)"
+ compiler_version_argument = ("-dumpfullversion", "-dumpversion")
def install(self, spec, prefix):
# Create the minimal compiler that will fool `spack compiler find`
diff --git a/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
index 78fdbe056c..892a09f7dc 100644
--- a/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
+++ b/var/spack/repos/builtin.mock/packages/intel-oneapi-compilers/package.py
@@ -18,9 +18,14 @@ class IntelOneapiCompilers(Package, CompilerPackage):
version("2.0", md5="abcdef0123456789abcdef0123456789")
version("3.0", md5="def0123456789abcdef0123456789abc")
+ compiler_languages = ["c", "cxx", "fortran"]
c_names = ["icx"]
cxx_names = ["icpx"]
fortran_names = ["ifx"]
+ compiler_version_argument = "--version"
+ compiler_version_regex = (
+ r"(?:(?:oneAPI DPC\+\+(?:\/C\+\+)? Compiler)|(?:\(IFORT\))|(?:\(IFX\))) (\S+)"
+ )
@property
def compiler_search_prefix(self):
@@ -32,9 +37,9 @@ class IntelOneapiCompilers(Package, CompilerPackage):
comp = self.compiler_search_prefix.icx
if sys.platform == "win32":
comp = comp + ".bat"
- comp_string = "@echo off\necho oneAPI DPC++ Compiler %s" % str(spec.version)
+ comp_string = f"@echo off\necho oneAPI DPC++ Compiler {str(spec.version)}"
else:
- comp_string = '#!/bin/bash\necho "oneAPI DPC++ Compiler %s"' % str(spec.version)
+ comp_string = f'#!/bin/bash\necho "oneAPI DPC++ Compiler {str(spec.version)}"'
with open(comp, "w") as f:
f.write(comp_string)
set_executable(comp)