summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Builder.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-05-04 18:26:04 (GMT)
committerSteven Knight <knight@baldmt.com>2003-05-04 18:26:04 (GMT)
commite591784eb29edfaf2760024f57ee1462f1bae1f3 (patch)
treea8637b156562104df4d39ab5f7b098446778cf0a /src/engine/SCons/Builder.py
parentabe3ed8cdeb3d5a16ab3448f768f43c6aa1feeca (diff)
downloadSCons-e591784eb29edfaf2760024f57ee1462f1bae1f3.zip
SCons-e591784eb29edfaf2760024f57ee1462f1bae1f3.tar.gz
SCons-e591784eb29edfaf2760024f57ee1462f1bae1f3.tar.bz2
If we added a temporary builder to a Node while calling the emitter, don't remove it if the emitter changed it on us.
Diffstat (limited to 'src/engine/SCons/Builder.py')
-rw-r--r--src/engine/SCons/Builder.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 22b177e..19cbe27 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -306,11 +306,14 @@ class BuilderBase:
target, source = self.emitter(target=tlist, source=slist, env=env)
- # Now delete the temporary builders that we attached to the
+ # Now delete the temporary builders that we attached to any
# new targets, so that _init_nodes() doesn't do weird stuff
# to them because it thinks they already have builders.
for t in new_targets:
- t.builder = None
+ if t.builder is self:
+ # Only delete the temporary builder if the emitter
+ # didn't change it on us.
+ t.builder = None
# Have to call arg2nodes yet again, since it is legal for
# emitters to spit out strings as well as Node instances.