From e59ee0768f7af099d08ccd42afa7ac4d4ce10838 Mon Sep 17 00:00:00 2001 From: Brian Vanderwende Date: Thu, 12 Dec 2024 23:33:04 -0700 Subject: [PATCH] grads: Support newer hdf5 versions for grads (#48058) * Support newer hdf5 versions for grads * Cover netcdf dependency too * Adjusted placement of two comments --- var/spack/repos/builtin/packages/grads/package.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py index a864ca1005d..1fee19cbbeb 100644 --- a/var/spack/repos/builtin/packages/grads/package.py +++ b/var/spack/repos/builtin/packages/grads/package.py @@ -41,7 +41,7 @@ class Grads(AutotoolsPackage): variant("hdf4", default=True, when="@2.2.2:", description="Enable HDF4 support") variant("netcdf", default=True, when="@2.2.2:", description="Enable NetCDF support") - depends_on("hdf5@:1.10", when="+hdf5") + depends_on("hdf5", when="+hdf5") depends_on("hdf", when="+hdf4") depends_on("netcdf-c", when="+netcdf") depends_on("g2c", when="+grib2") @@ -64,16 +64,26 @@ def url_for_version(self, version): url = "ftp://cola.gmu.edu/grads/{}/grads-{}-src.tar.gz" return url.format(version.up_to(2), version) - # Name of grib2 C library has changed in recent versions def patch(self): if self.spec.satisfies("@:2.2.2"): filter_file("png15", "png", "configure") + # Name of grib2 C library has changed in recent versions if self.spec.satisfies("+grib2"): filter_file("grib2c", "g2c", "configure") if self.spec.satisfies("^g2c@1.8.0:"): filter_file("G2_VERSION", "G2C_VERSION", "src/gacfg.c") + def flag_handler(self, name, flags): + spec = self.spec + + if name == "cflags": + # Can use newer versions of HDF5, but 1.10 is the last API GrADS supports + if "hdf5" in spec and spec["hdf5"].satisfies("@1.12:"): + flags.append("-DH5_USE_110_API") + + return (flags, None, None) + def setup_build_environment(self, env): env.set("SUPPLIBS", "/")