Windows: search PATH for patch utility (#40513)
Previously, we only searched for `patch` inside of whatever Git installation was available because the most common installation of Git available on Windows had `patch`. That's not true for all possible installations of Git though, so this updates the search to also check PATH.
This commit is contained in:
parent
2d203df075
commit
e1da9339d9
1 changed files with 7 additions and 4 deletions
|
@ -7,6 +7,7 @@
|
||||||
import inspect
|
import inspect
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
import pathlib
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import llnl.util.filesystem
|
import llnl.util.filesystem
|
||||||
|
@ -36,10 +37,12 @@ def apply_patch(stage, patch_path, level=1, working_dir="."):
|
||||||
"""
|
"""
|
||||||
git_utils_path = os.environ.get("PATH", "")
|
git_utils_path = os.environ.get("PATH", "")
|
||||||
if sys.platform == "win32":
|
if sys.platform == "win32":
|
||||||
git = which_string("git", required=True)
|
git = which_string("git")
|
||||||
git_root = git.split("\\")[:-2]
|
if git:
|
||||||
git_root.extend(["usr", "bin"])
|
git = pathlib.Path(git)
|
||||||
git_utils_path = os.sep.join(git_root)
|
git_root = git.parent.parent
|
||||||
|
git_root = git_root / "usr" / "bin"
|
||||||
|
git_utils_path = os.pathsep.join([str(git_root), git_utils_path])
|
||||||
|
|
||||||
# TODO: Decouple Spack's patch support on Windows from Git
|
# TODO: Decouple Spack's patch support on Windows from Git
|
||||||
# for Windows, and instead have Spack directly fetch, install, and
|
# for Windows, and instead have Spack directly fetch, install, and
|
||||||
|
|
Loading…
Reference in a new issue