diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-01-25 00:21:04 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-01-25 00:21:04 -0300 |
commit | caddcca4f468399e81fc703aa6e002e41250fdda (patch) | |
tree | 074af928719eb261296a93214f2f890e41b0b889 /methods.py | |
parent | caff4000a253130169c984d51c2be097fe50705f (diff) |
-Many fixes to windows build system with Mingw on Windows. Fixes #2690
Diffstat (limited to 'methods.py')
-rwxr-xr-x | methods.py | 45 |
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: |