diff options
author | Juan Linietsky <reduzio@gmail.com> | 2015-01-02 11:59:57 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2015-01-02 11:59:57 -0300 |
commit | dfa34a66cd4b092dddf54b86e4b6c3e6e1262a92 (patch) | |
tree | fa6bd8fe160e34e3861a824b4f846eca91843c02 | |
parent | 3d4cf876711b5986da68889063df540535f4a63c (diff) | |
parent | 645a0385687fc2deefdb47f73eb4415932987c42 (diff) |
Merge pull request #1064 from leezh/mingw-fixes
MinGW linker command too long
-rw-r--r-- | SConstruct | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/SConstruct b/SConstruct index 42e9085171..f5aa0cd1bd 100644 --- a/SConstruct +++ b/SConstruct @@ -133,8 +133,8 @@ Help(opts.GenerateHelpText(env_base)) # generate help # add default include paths env_base.Append(CPPPATH=['#core','#core/math','#tools','#drivers','#']) - -# configure ENV for platform + +# configure ENV for platform env_base.platform_exporters=platform_exporters """ @@ -170,6 +170,26 @@ if selected_platform in platform_list: else: env = env_base.Clone() + # Workaround for MinGW. See: + # http://www.scons.org/wiki/LongCmdLinesOnWin32 + if (os.name=="nt"): + import subprocess + def mySpawn(sh, escape, cmd, args, env): + newargs = ' '.join(args[1:]) + cmdline = cmd + " " + newargs + 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 + env['SPAWN'] = mySpawn + env.extra_suffix="" CCFLAGS = env.get('CCFLAGS', '') |