Merge pull request #97188 from alvinhochun/binutils-ar-tempfile-fix

Fix using Binutils `AR` with `TEMPFILE` on Windows
This commit is contained in:
Rémi Verschelde 2024-09-19 17:13:10 +02:00
commit bea22d8c64
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 13 additions and 0 deletions

View File

@ -704,6 +704,17 @@ def get_is_ar_thin_supported(env):
return False return False
WINPATHSEP_RE = re.compile(r"\\([^\"'\\]|$)")
def tempfile_arg_esc_func(arg):
from SCons.Subst import quote_spaces
arg = quote_spaces(arg)
# GCC requires double Windows slashes, let's use UNIX separator
return WINPATHSEP_RE.sub(r"/\1", arg)
def configure_mingw(env: "SConsEnvironment"): def configure_mingw(env: "SConsEnvironment"):
# Workaround for MinGW. See: # Workaround for MinGW. See:
# https://www.scons.org/wiki/LongCmdLinesOnWin32 # https://www.scons.org/wiki/LongCmdLinesOnWin32
@ -713,6 +724,8 @@ def configure_mingw(env: "SConsEnvironment"):
env["ARCOM_ORIG"] = env["ARCOM"] env["ARCOM_ORIG"] = env["ARCOM"]
env["ARCOM"] = "${TEMPFILE('$ARCOM_ORIG', '$ARCOMSTR')}" env["ARCOM"] = "${TEMPFILE('$ARCOM_ORIG', '$ARCOMSTR')}"
env["TEMPFILESUFFIX"] = ".rsp" env["TEMPFILESUFFIX"] = ".rsp"
if os.name == "nt":
env["TEMPFILEARGESCFUNC"] = tempfile_arg_esc_func
## Build type ## Build type