diff options
| author | Steven Knight <knight@baldmt.com> | 2002-04-17 20:17:55 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-04-17 20:17:55 (GMT) |
| commit | 82b0db2c19ef714da4e95095c8dee8c32fc294ac (patch) | |
| tree | a56895982a621f2d3806c841eea8dba89b97369a /src/engine/SCons/Defaults.py | |
| parent | 181de357174cc9663407256408c813c344e6bd9b (diff) | |
| download | SCons-82b0db2c19ef714da4e95095c8dee8c32fc294ac.zip SCons-82b0db2c19ef714da4e95095c8dee8c32fc294ac.tar.gz SCons-82b0db2c19ef714da4e95095c8dee8c32fc294ac.tar.bz2 | |
Fix win32LinkGenerator.
Diffstat (limited to 'src/engine/SCons/Defaults.py')
| -rw-r--r-- | src/engine/SCons/Defaults.py | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py index 929dbc9..a0b1157 100644 --- a/src/engine/SCons/Defaults.py +++ b/src/engine/SCons/Defaults.py @@ -135,25 +135,21 @@ Object = SCons.Builder.Builder(name = 'Object', src_builder = [CFile, CXXFile]) def win32LinkGenerator(env, target, source, **kw): - args = [] - for a in [env['LINKFLAGS'], - '/OUT:' + str(target[0]), - env['_LIBDIRFLAGS'], - env['_LIBFLAGS'], - map(lambda x: str(x), source)]: - if SCons.Util.is_List(a): - args.extend(a) - else: - args.append(a) - argstring = string.join(args, " ") - if len(argstring) <= 2048: - return env['LINK'] + " " + argstring + cmd = env.subst_list([ '$LINK', '$LINKFLAGS', '/OUT:' + str(target[0]) ])[0] + cmd.extend(['$('] + env.subst_list('$_LIBDIRFLAGS')[0] + ['$)']) + cmd.extend(env.subst_list('$_LIBFLAGS')[0]) + cmd.extend(map(lambda x: str(x), source)) + cmdlen = reduce(lambda x, y: x + len(y), cmd, 0) + len(cmd) + if cmdlen <= 2048: + return [cmd] else: import tempfile tmp = tempfile.mktemp() - open(tmp, 'w').write(argstring + "\n") - return [ env['LINK'] + " @" + tmp, - "del " + tmp, ] + args = filter(lambda x: x != '$(' and x != '$)', cmd[1:]) + args = map(SCons.Util.quote_spaces, args) + open(tmp, 'w').write(string.join(args, " ") + "\n") + return [ [cmd[0], '@' + tmp], + ['del', tmp] ] kw = { 'name' : 'Program', |
