diff options
author | Adam J. Stewart <ajstewart426@gmail.com> | 2023-09-18 17:46:33 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 15:46:33 -0700 |
commit | dbd520f85141416967f423e59f6934194f5e0ec6 (patch) | |
tree | cf887df688534ca7f41a880f945bbd9ffb281fdf | |
parent | 4fd7fa5fc1ddcb994348718e8e5cc3ba80ff8773 (diff) | |
download | spack-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.py | 20 |
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)) |