From 192e564e26e919169aa926e92af7bd9a28cbb4f1 Mon Sep 17 00:00:00 2001 From: Sergey Kosukhin Date: Mon, 15 May 2023 18:03:03 +0200 Subject: hdf5: fix showconfig (#34920) Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com> --- var/spack/repos/builtin/packages/hdf5/package.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index 4efba18d87..efb16ab591 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -686,6 +686,24 @@ class Hdf5(CMakePackage): if not os.path.exists(tgt_filename): symlink(src_filename, tgt_filename) + @run_after("install") + def fix_showconfig(self): + # The 'Extra libraries' entry of the 'h5cc -showconfig' command is a space-separated list + # of linker flags if the package is installed with Autotools, and a semicolon-separated + # list of library names if the package is installed with CMake. There are use cases that + # rely on the old Autotools behavior. Here, we make sure that the output of the command + # looks like it was before we switch to CMake. + filter_file( + r"^(\s*Extra libraries: )(.*)", + lambda match: "{0}{1}".format( + match.group(1), + " ".join("-l{0}".format(name) for name in filter(None, match.group(2).split(";"))), + ), + self.prefix.lib.join("libhdf5.settings"), + backup=False, + ignore_absent=True, + ) + @run_after("install") @on_package_attributes(run_tests=True) def check_install(self): -- cgit v1.2.3-70-g09d2