53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
|
import os
|
||
|
|
||
|
|
||
|
def exists(env):
|
||
|
return os.name == "nt"
|
||
|
|
||
|
|
||
|
# Workaround for MinGW. See:
|
||
|
# http://www.scons.org/wiki/LongCmdLinesOnWin32
|
||
|
def configure(env):
|
||
|
import subprocess
|
||
|
|
||
|
def mySubProcess(cmdline, env):
|
||
|
# print "SPAWNED : " + cmdline
|
||
|
startupinfo = subprocess.STARTUPINFO()
|
||
|
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
||
|
proc = subprocess.Popen(
|
||
|
cmdline,
|
||
|
stdin=subprocess.PIPE,
|
||
|
stdout=subprocess.PIPE,
|
||
|
stderr=subprocess.PIPE,
|
||
|
startupinfo=startupinfo,
|
||
|
shell=False,
|
||
|
env=env,
|
||
|
)
|
||
|
data, err = proc.communicate()
|
||
|
rv = proc.wait()
|
||
|
if rv:
|
||
|
print("=====")
|
||
|
print(err.decode("utf-8"))
|
||
|
print("=====")
|
||
|
return rv
|
||
|
|
||
|
def mySpawn(sh, escape, cmd, args, env):
|
||
|
|
||
|
newargs = " ".join(args[1:])
|
||
|
cmdline = cmd + " " + newargs
|
||
|
|
||
|
rv = 0
|
||
|
if len(cmdline) > 32000 and cmd.endswith("ar"):
|
||
|
cmdline = cmd + " " + args[1] + " " + args[2] + " "
|
||
|
for i in range(3, len(args)):
|
||
|
rv = mySubProcess(cmdline + args[i], env)
|
||
|
if rv:
|
||
|
break
|
||
|
else:
|
||
|
rv = mySubProcess(cmdline, env)
|
||
|
|
||
|
return rv
|
||
|
|
||
|
env["SPAWN"] = mySpawn
|
||
|
env.Replace(ARFLAGS=["q"])
|