PythonExtension: use different bin dir on Windows (#45427)

This commit is contained in:
John W. Parent 2024-08-24 03:34:24 -04:00 committed by GitHub
parent 296e5308a7
commit 1f1021a47f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 1 deletions

View File

@ -17,7 +17,7 @@
import llnl.util.filesystem as fs
import llnl.util.lang as lang
import llnl.util.tty as tty
from llnl.util.filesystem import HeaderList, LibraryList
from llnl.util.filesystem import HeaderList, LibraryList, join_path
import spack.builder
import spack.config
@ -120,6 +120,12 @@ def skip_modules(self) -> Iterable[str]:
"""
return []
@property
def bindir(self) -> str:
"""Path to Python package's bindir, bin on unix like OS's Scripts on Windows"""
windows = self.spec.satisfies("platform=windows")
return join_path(self.spec.prefix, "Scripts" if windows else "bin")
def view_file_conflicts(self, view, merge_map):
"""Report all file conflicts, excepting special cases for python.
Specifically, this does not report errors for duplicate

View File

@ -93,6 +93,9 @@ def setup_dependent_run_environment(self, env, dependent_spec):
path = os.path.join(dependent_spec.prefix, directory)
if os.path.isdir(path):
env.prepend_path("PYTHONPATH", path)
dep_bin_dir = getattr(dependent_spec.package, "bindir", None)
if dep_bin_dir and os.path.isdir(dep_bin_dir):
env.prepend_path("PATH", dep_bin_dir)
def setup_dependent_package(self, module, dependent_spec):
"""Called before python modules' install() methods."""