From dbd520f85141416967f423e59f6934194f5e0ec6 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 18 Sep 2023 17:46:33 -0500 Subject: Better detection of Python libs/headers (#39308) --- lib/spack/spack/build_systems/python.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/spack/spack/build_systems/python.py b/lib/spack/spack/build_systems/python.py index c791ab804f..0d03813ddf 100644 --- a/lib/spack/spack/build_systems/python.py +++ b/lib/spack/spack/build_systems/python.py @@ -319,9 +319,12 @@ class PythonPackage(PythonExtension): def headers(self): """Discover header files in platlib.""" + # Remove py- prefix in package name + name = self.spec.name[3:] + # Headers may be in either location - include = self.prefix.join(self.spec["python"].package.include) - platlib = self.prefix.join(self.spec["python"].package.platlib) + include = self.prefix.join(self.spec["python"].package.include).join(name) + platlib = self.prefix.join(self.spec["python"].package.platlib).join(name) headers = fs.find_all_headers(include) + fs.find_all_headers(platlib) if headers: @@ -335,13 +338,14 @@ class PythonPackage(PythonExtension): """Discover libraries in platlib.""" # Remove py- prefix in package name - library = "lib" + self.spec.name[3:].replace("-", "?") - root = self.prefix.join(self.spec["python"].package.platlib) + name = self.spec.name[3:] + + root = self.prefix.join(self.spec["python"].package.platlib).join(name) + + libs = fs.find_all_libraries(root, recursive=True) - for shared in [True, False]: - libs = fs.find_libraries(library, root, shared=shared, recursive=True) - if libs: - return libs + if libs: + return libs msg = "Unable to recursively locate {} libraries in {}" raise NoLibrariesError(msg.format(self.spec.name, root)) -- cgit v1.2.3-70-g09d2