summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorDom Heinzeller <dom.heinzeller@icloud.com>2023-09-20 11:28:52 -0600
committerGitHub <noreply@github.com>2023-09-20 10:28:52 -0700
commit31fe78e3784c5e77f535f7d0dc203f1bb11a3af9 (patch)
tree3e0e1aa761c4b66a557c23ecceb92da1a487a1e5 /var
parente16ca490360beca87bfc9c5abd83be5f9b754d1f (diff)
downloadspack-31fe78e3784c5e77f535f7d0dc203f1bb11a3af9.tar.gz
spack-31fe78e3784c5e77f535f7d0dc203f1bb11a3af9.tar.bz2
spack-31fe78e3784c5e77f535f7d0dc203f1bb11a3af9.tar.xz
spack-31fe78e3784c5e77f535f7d0dc203f1bb11a3af9.zip
ESMF package: fix netcdf static libs and variant combinations (#39738)
Add "snapshot" variant for identifying UFS WM support
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/esmf/package.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py
index 90e045a250..2d9cde52f7 100644
--- a/var/spack/repos/builtin/packages/esmf/package.py
+++ b/var/spack/repos/builtin/packages/esmf/package.py
@@ -76,12 +76,20 @@ class Esmf(MakefilePackage):
)
variant("debug", default=False, description="Build with debugging symbols and options enabled")
variant("shared", default=True, description="Build shared library")
+
# 'esmf_os', 'esmf_comm', 'esmf_pio' variants allow override values for their corresponding
# build environment variables. Documentation, including valid values, can be found at
# https://earthsystemmodeling.org/docs/release/latest/ESMF_usrdoc/node10.html#SECTION000105000000000000000
variant("esmf_os", default="auto", description="Override for ESMF_OS variable")
variant("esmf_comm", default="auto", description="Override for ESMF_COMM variable")
variant("esmf_pio", default="auto", description="Override for ESMF_PIO variable")
+ # Set the 'snapshot' variant any time a beta snapshot is used in order to obtain
+ # correct module name behavior for MAPL.
+ variant(
+ "snapshot",
+ default="none",
+ description="Named variant for snapshots versions (e.g., 'b09')",
+ )
# Optional dependencies
depends_on("mpi", when="+mpi")
@@ -90,12 +98,12 @@ class Esmf(MakefilePackage):
depends_on("netcdf-fortran@3.6:", when="+netcdf")
depends_on("parallel-netcdf@1.2.0:", when="+pnetcdf")
depends_on("xerces-c@3.1.0:", when="+xerces")
- depends_on("parallelio@2.5.7: +mpi", when="@8.3.0:8.3.99+external-parallelio+mpi")
- depends_on("parallelio@2.5.7: ~mpi", when="@8.3.0:8.3.99+external-parallelio~mpi")
- depends_on("parallelio@2.5.9: +mpi", when="@8.4.0:8.4.99+external-parallelio+mpi")
- depends_on("parallelio@2.5.9: ~mpi", when="@8.4.0:8.4.99+external-parallelio~mpi")
- depends_on("parallelio@2.5.10: +mpi", when="@8.5.0:+external-parallelio+mpi")
- depends_on("parallelio@2.5.10: ~mpi", when="@8.5.0:+external-parallelio~mpi")
+ depends_on("parallelio@2.5.7: +mpi", when="@8.3+external-parallelio+mpi")
+ depends_on("parallelio@2.5.7: ~mpi", when="@8.3+external-parallelio~mpi")
+ depends_on("parallelio@2.5.9: +mpi", when="@8.4+external-parallelio+mpi")
+ depends_on("parallelio@2.5.9: ~mpi", when="@8.4+external-parallelio~mpi")
+ depends_on("parallelio@2.5.10: +mpi", when="@8.5:+external-parallelio+mpi")
+ depends_on("parallelio@2.5.10: ~mpi", when="@8.5:+external-parallelio~mpi")
depends_on("cmake@3.5.2:", type="build", when="~external-parallelio")
# Testing dependencies
@@ -241,7 +249,7 @@ class Esmf(MakefilePackage):
if (
self.compiler.name in ["gcc", "clang", "apple-clang"]
and gfortran_major_version >= 10
- and self.spec.satisfies("@:8.2.99")
+ and (self.spec.satisfies("@:8.2.99") or self.spec.satisfies("@8.3.0b09"))
):
env.set("ESMF_F90COMPILEOPTS", "-fallow-argument-mismatch")
@@ -268,6 +276,9 @@ class Esmf(MakefilePackage):
if "+mpi" in spec:
if "^cray-mpich" in self.spec:
env.set("ESMF_COMM", "mpi")
+ # https://github.com/jcsda/spack-stack/issues/517
+ if self.spec.satisfies("@:8.4.1"):
+ env.set("ESMF_CXXLINKLIBS", "-lmpifort -lmpi")
elif "^mvapich2" in spec:
env.set("ESMF_COMM", "mvapich2")
elif "^mpich" in spec:
@@ -327,7 +338,7 @@ class Esmf(MakefilePackage):
netcdfc = spec["netcdf-c"]
if netcdfc.satisfies("~shared"):
nc_config = which(os.path.join(netcdfc.prefix.bin, "nc-config"))
- nc_flags = nc_config("--libs", output=str).strip()
+ nc_flags = nc_config("--static", "--libs", output=str).strip()
env.set("ESMF_NETCDF_LIBS", nc_flags)
###################