summaryrefslogtreecommitdiff
path: root/methods.py
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2016-01-25 00:21:04 -0300
committerJuan Linietsky <reduzio@gmail.com>2016-01-25 00:21:04 -0300
commitcaddcca4f468399e81fc703aa6e002e41250fdda (patch)
tree074af928719eb261296a93214f2f890e41b0b889 /methods.py
parentcaff4000a253130169c984d51c2be097fe50705f (diff)
-Many fixes to windows build system with Mingw on Windows. Fixes #2690
Diffstat (limited to 'methods.py')
-rwxr-xr-xmethods.py45
1 files changed, 44 insertions, 1 deletions
diff --git a/methods.py b/methods.py
index e8de4696cd..e3cf51be84 100755
--- a/methods.py
+++ b/methods.py
@@ -1309,7 +1309,50 @@ def android_add_to_attributes(self,file):
def disable_module(self):
self.disabled_modules.append(self.current_module)
-
+
+def use_windows_spawn_fix(self):
+
+ if (os.name!="nt"):
+ return #not needed, only for windows
+
+ self.split_drivers=True
+
+ 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
+ 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
+
+ self['SPAWN'] = mySpawn
+
+
def save_active_platforms(apnames,ap):
for x in ap: