summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjdomke <28772296+jdomke@users.noreply.github.com>2024-03-18 23:12:44 +0900
committerGitHub <noreply@github.com>2024-03-18 15:12:44 +0100
commit6e0bab1706750c845b0a3daddf5f76bde4219371 (patch)
tree846d6b56198b9fba0c6a4d8b17c427140203654f
parent193386f6ac20c44a41b063aa966e3513bc448463 (diff)
downloadspack-6e0bab1706750c845b0a3daddf5f76bde4219371.tar.gz
spack-6e0bab1706750c845b0a3daddf5f76bde4219371.tar.bz2
spack-6e0bab1706750c845b0a3daddf5f76bde4219371.tar.xz
spack-6e0bab1706750c845b0a3daddf5f76bde4219371.zip
fujitsu-mpi: add gcc and clang support (#43053)
Co-authored-by: domke <673751-domke@users.noreply.gitlab.com>
-rw-r--r--var/spack/repos/builtin/packages/fujitsu-mpi/package.py36
1 files changed, 27 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
index c3ae7d9456..91ba765750 100644
--- a/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
+++ b/var/spack/repos/builtin/packages/fujitsu-mpi/package.py
@@ -14,7 +14,13 @@ class FujitsuMpi(Package):
homepage = "https://www.fujitsu.com/us/"
provides("mpi@3.1:")
- requires("%fj")
+ requires(
+ "%fj@4:",
+ "%clang@11:",
+ "%gcc@8:",
+ policy="one_of",
+ msg="currently only supports Fujitsu, Clang, or GCC compilers",
+ )
def install(self, spec, prefix):
raise InstallError("Fujitsu MPI is not installable; it is vendor supplied")
@@ -36,15 +42,27 @@ class FujitsuMpi(Package):
return find_libraries(libraries, root=self.prefix, shared=True, recursive=True)
def setup_dependent_package(self, module, dependent_spec):
- self.spec.mpicc = self.prefix.bin.mpifcc
- self.spec.mpicxx = self.prefix.bin.mpiFCC
- self.spec.mpif77 = self.prefix.bin.mpifrt
- self.spec.mpifc = self.prefix.bin.mpifrt
+ if self.spec.satisfies("%gcc"):
+ self.spec.mpicc = self.prefix.bin.mpicc
+ self.spec.mpicxx = self.prefix.bin.mpicxx
+ self.spec.mpif77 = self.prefix.bin.mpif77
+ self.spec.mpifc = self.prefix.bin.mpifort
+ else:
+ self.spec.mpicc = self.prefix.bin.mpifcc
+ self.spec.mpicxx = self.prefix.bin.mpiFCC
+ self.spec.mpif77 = self.prefix.bin.mpifrt
+ self.spec.mpifc = self.prefix.bin.mpifrt
def setup_run_environment(self, env):
# Because MPI are both compilers and runtimes, we set up the compilers
# as part of run environment
- env.set("MPICC", self.prefix.bin.mpifcc)
- env.set("MPICXX", self.prefix.bin.mpiFCC)
- env.set("MPIF77", self.prefix.bin.mpifrt)
- env.set("MPIF90", self.prefix.bin.mpifrt)
+ if self.spec.satisfies("%gcc"):
+ env.set("MPICC", self.prefix.bin.mpicc)
+ env.set("MPICXX", self.prefix.bin.mpicxx)
+ env.set("MPIF77", self.prefix.bin.mpif77)
+ env.set("MPIF90", self.prefix.bin.mpifort)
+ else:
+ env.set("MPICC", self.prefix.bin.mpifcc)
+ env.set("MPICXX", self.prefix.bin.mpiFCC)
+ env.set("MPIF77", self.prefix.bin.mpifrt)
+ env.set("MPIF90", self.prefix.bin.mpifrt)