Compare commits

...

1 Commits

Author SHA1 Message Date
Gregory Becker
47a1ed8d91 wip 2022-11-08 17:03:45 -08:00

View File

@@ -2,6 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details. # Spack Project Developers. See the top-level COPYRIGHT file for details.
# #
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
import glob
import inspect import inspect
import os import os
import re import re
@@ -223,8 +224,8 @@ def headers(self):
"""Discover header files in platlib.""" """Discover header files in platlib."""
# Headers may be in either location # Headers may be in either location
include = self.prefix.join(self.spec["python"].package.include) include = self.prefix.join(self.include)
platlib = self.prefix.join(self.spec["python"].package.platlib) platlib = self.prefix.join(self.platlib)
headers = fs.find_all_headers(include) + fs.find_all_headers(platlib) headers = fs.find_all_headers(include) + fs.find_all_headers(platlib)
if headers: if headers:
@@ -233,13 +234,29 @@ def headers(self):
msg = "Unable to locate {} headers in {} or {}" msg = "Unable to locate {} headers in {} or {}"
raise NoHeadersError(msg.format(self.spec.name, include, platlib)) raise NoHeadersError(msg.format(self.spec.name, include, platlib))
@property
def include(self):
include = glob.glob(self.prefix.include.join("python*"))
if include:
return include[0]
return self.spec["python"].package.include
@property
def platlib(self):
for libname in ("lib", "lib64"):
platlib = glob.glob(self.prefix.join(libname).join("python*").join("site-packages"))
if platlib:
return platlib[0]
return self.spec["python"].package.platlib
@property @property
def libs(self): def libs(self):
"""Discover libraries in platlib.""" """Discover libraries in platlib."""
# Remove py- prefix in package name # Remove py- prefix in package name
library = "lib" + self.spec.name[3:].replace("-", "?") library = "lib" + self.spec.name[3:].replace("-", "?")
root = self.prefix.join(self.spec["python"].package.platlib) root = self.prefix.join(self.platlib)
for shared in [True, False]: for shared in [True, False]:
libs = fs.find_libraries(library, root, shared=shared, recursive=True) libs = fs.find_libraries(library, root, shared=shared, recursive=True)