From d4a0ae2a7424898fd5702b5fedd40a5728d5e10e Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Wed, 18 Jun 2008 15:21:08 +0100 Subject: [PATCH] Add a WAF workaround for the 'Input line is too long.' error in win32/mingw. --- wscript | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/wscript b/wscript index 839d57e35..59dc6d6bc 100644 --- a/wscript +++ b/wscript @@ -244,6 +244,22 @@ def add_scratch_programs(bld): obj.source = "scratch/%s" % filename obj.target = "scratch/%s" % name + +## +## This replacement spawn function increases the maximum command line length to 32k +## +def _exec_command_interact_win32(s): + if Params.g_verbose: + print s + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + proc = subprocess.Popen(s, shell=False, startupinfo=startupinfo) + stat = proc.wait() + if stat & 0xff: + return stat | 0x80 + return stat >> 8 + + def build(bld): if Params.g_options.no_task_lines: import Runner @@ -251,6 +267,10 @@ def build(bld): pass Runner.printout = null_printout + if sys.platform == 'win32': + import Runner + Runner.exec_command = _exec_command_interact_win32 + Params.g_cwd_launch = Params.g_build.m_curdirnode.abspath() bld.create_ns3_program = types.MethodType(create_ns3_program, bld) variant_name = bld.env_of_name('default')['NS3_ACTIVE_VARIANT']