From eb36bb2a8f898d746f7ed14a7c2cf0e4ac332323 Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Sat, 2 Mar 2024 13:05:59 -0600 Subject: netcdf-c package: correct library names (#42878) An incorrect hdf5 library name is added to pkconfig and CMake config files when netcdf-c is built with CMake. --- var/spack/repos/builtin/packages/netcdf-c/package.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py index 84f854fec9..0ccd9298fe 100644 --- a/var/spack/repos/builtin/packages/netcdf-c/package.py +++ b/var/spack/repos/builtin/packages/netcdf-c/package.py @@ -351,6 +351,24 @@ class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder): base_cmake_args.append(self.define("NC_FIND_SHARED_LIBS", False)) return base_cmake_args + @run_after("install") + def patch_hdf5_pkgconfigcmake(self): + """ + Incorrect hdf5 library names are put in the package config and config.cmake files + due to incorrectly using hdf5 target names + https://github.com/spack/spack/pull/42878 + """ + + pkgconfig_file = find(self.prefix, "netcdf.pc", recursive=True) + cmakeconfig_file = find(self.prefix, "netCDFTargets.cmake", recursive=True) + ncconfig_file = find(self.prefix, "nc-config", recursive=True) + settingsconfig_file = find(self.prefix, "libnetcdf.settings", recursive=True) + + files = pkgconfig_file + cmakeconfig_file + ncconfig_file + settingsconfig_file + + filter_file("hdf5-shared", "hdf5", *files, ignore_absent=True) + filter_file("hdf5_hl-shared", "hdf5_hl", *files, ignore_absent=True) + class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder): @property -- cgit v1.2.3-70-g09d2