summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2023-09-18 17:46:33 -0500
committerGitHub <noreply@github.com>2023-09-18 15:46:33 -0700
commitdbd520f85141416967f423e59f6934194f5e0ec6 (patch)
treecf887df688534ca7f41a880f945bbd9ffb281fdf
parent4fd7fa5fc1ddcb994348718e8e5cc3ba80ff8773 (diff)
downloadspack-dbd520f85141416967f423e59f6934194f5e0ec6.tar.gz
spack-dbd520f85141416967f423e59f6934194f5e0ec6.tar.bz2
spack-dbd520f85141416967f423e59f6934194f5e0ec6.tar.xz
spack-dbd520f85141416967f423e59f6934194f5e0ec6.zip
Better detection of Python libs/headers (#39308)
-rw-r--r--lib/spack/spack/build_systems/python.py20
1 files 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))