PythonExtension: use different bin dir on Windows (#45427)
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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.""" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 John W. Parent
					John W. Parent