summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorDirk Baechle <dl9obn@darc.de>2014-08-06 23:12:21 (GMT)
committerDirk Baechle <dl9obn@darc.de>2014-08-06 23:12:21 (GMT)
commita64b41ac4e3e506417f465e414b94cb07aed582e (patch)
tree82f5aa6c1e99166e337a9a3cdf3e1af4cb628682 /src/engine
parent67f3f8950bb1076382d816e859026018974ee132 (diff)
parent31b8874144cf5df3b7a7fa296579534a628db8f8 (diff)
downloadSCons-a64b41ac4e3e506417f465e414b94cb07aed582e.zip
SCons-a64b41ac4e3e506417f465e414b94cb07aed582e.tar.gz
SCons-a64b41ac4e3e506417f465e414b94cb07aed582e.tar.bz2
Merged in ajf58/scons (pull request #160), fixes #2900 (handling of appending dictionaries to CPPDEFINES)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Environment.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 7789855..62d6809 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -1206,7 +1206,13 @@ class Base(SubstitutionEnvironment):
# based on what we think the value looks like.
if SCons.Util.is_List(val):
if key == 'CPPDEFINES':
- orig = orig.items()
+ tmp = []
+ for (k, v) in orig.iteritems():
+ if v is not None:
+ tmp.append((k, v))
+ else:
+ tmp.append((k,))
+ orig = tmp
orig += val
self._dict[key] = orig
else:
@@ -1286,8 +1292,15 @@ class Base(SubstitutionEnvironment):
else:
tmp.append((i,))
val = tmp
+ # Construct a list of (key, value) tuples.
if SCons.Util.is_Dict(dk):
- dk = dk.items()
+ tmp = []
+ for (k, v) in dk.iteritems():
+ if v is not None:
+ tmp.append((k, v))
+ else:
+ tmp.append((k,))
+ dk = tmp
elif SCons.Util.is_String(dk):
dk = [(dk,)]
else:
@@ -1327,8 +1340,15 @@ class Base(SubstitutionEnvironment):
else:
tmp.append((i,))
dk = tmp
+ # Construct a list of (key, value) tuples.
if SCons.Util.is_Dict(val):
- val = val.items()
+ tmp = []
+ for (k, v) in val.iteritems():
+ if v is not None:
+ tmp.append((k, v))
+ else:
+ tmp.append((k,))
+ val = tmp
elif SCons.Util.is_String(val):
val = [(val,)]
if delete_existing:
@@ -1351,7 +1371,13 @@ class Base(SubstitutionEnvironment):
if SCons.Util.is_String(dk):
dk = [dk]
elif SCons.Util.is_Dict(dk):
- dk = dk.items()
+ tmp = []
+ for (k, v) in dk.iteritems():
+ if v is not None:
+ tmp.append((k, v))
+ else:
+ tmp.append((k,))
+ dk = tmp
if SCons.Util.is_String(val):
if val in dk:
val = []