diff options
author | jdomke <28772296+jdomke@users.noreply.github.com> | 2024-03-18 23:12:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-18 15:12:44 +0100 |
commit | 6e0bab1706750c845b0a3daddf5f76bde4219371 (patch) | |
tree | 846d6b56198b9fba0c6a4d8b17c427140203654f | |
parent | 193386f6ac20c44a41b063aa966e3513bc448463 (diff) | |
download | spack-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.py | 36 |
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) |