summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2015-01-02 11:59:57 -0300
committerJuan Linietsky <reduzio@gmail.com>2015-01-02 11:59:57 -0300
commitdfa34a66cd4b092dddf54b86e4b6c3e6e1262a92 (patch)
treefa6bd8fe160e34e3861a824b4f846eca91843c02
parent3d4cf876711b5986da68889063df540535f4a63c (diff)
parent645a0385687fc2deefdb47f73eb4415932987c42 (diff)
Merge pull request #1064 from leezh/mingw-fixes
MinGW linker command too long
-rw-r--r--SConstruct24
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', '')