From 848816efa4b3a05858b2f2da6d80f2ef95e27cf5 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Thu, 20 Feb 2025 18:08:38 +0100 Subject: [PATCH] cray-libsci: fix finding library The fix is brittle, but not more brittle than before, where users had to specify the "correct" compiler ans prefix in the external definition --- var/spack/repos/builtin/packages/cray-libsci/package.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py index c4802df7b79..df81b412847 100644 --- a/var/spack/repos/builtin/packages/cray-libsci/package.py +++ b/var/spack/repos/builtin/packages/cray-libsci/package.py @@ -62,7 +62,10 @@ def external_prefix(self): @property def blas_libs(self): shared = True if "+shared" in self.spec else False - compiler = self.spec.compiler.name + + candidates = [name for name in self.canonical_names.values() if name in self.prefix] + if len(candidates) != 1: + raise RuntimeError("cannot determine libsci libraries") lib = [] if self.spec.satisfies("+openmp") and self.spec.satisfies("+mpi"): @@ -76,7 +79,7 @@ def blas_libs(self): libname = [] for lib_fmt in lib: - libname.append(lib_fmt.format(self.canonical_names[compiler].lower())) + libname.append(lib_fmt.format(candidates[0].lower())) return find_libraries(libname, root=self.prefix.lib, shared=shared, recursive=False)