summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Builder.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-03-20 16:45:30 (GMT)
committerSteven Knight <knight@baldmt.com>2002-03-20 16:45:30 (GMT)
commita9272652019c6d0cad2f20737e210f820ec9394d (patch)
tree6c66bb13fa20cbd1e46b837e2ab734039cb68b6e /src/engine/SCons/Builder.py
parent70d4bf67b7fefce28d76d451c959ba633720214e (diff)
downloadSCons-a9272652019c6d0cad2f20737e210f820ec9394d.zip
SCons-a9272652019c6d0cad2f20737e210f820ec9394d.tar.gz
SCons-a9272652019c6d0cad2f20737e210f820ec9394d.tar.bz2
Fix subtle problems in end cases with using multiple scanners on a Node.
Diffstat (limited to 'src/engine/SCons/Builder.py')
-rw-r--r--src/engine/SCons/Builder.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index efef969..a62d91d 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -63,6 +63,13 @@ def _init_nodes(builder, env, tlist, slist):
"""Initialize lists of target and source nodes with all of
the proper Builder information.
"""
+ src_scanner = None
+ if slist:
+ src_key = slist[0].scanner_key() # the file suffix
+ src_scanner = env.get_scanner(src_key)
+ if src_scanner:
+ src_scanner = src_scanner.instance(env)
+
for t in tlist:
t.cwd = SCons.Node.FS.default_fs.getcwd() # XXX
t.builder_set(builder)
@@ -70,12 +77,8 @@ def _init_nodes(builder, env, tlist, slist):
t.add_source(slist)
if builder.scanner:
t.scanner_set(builder.scanner.instance(env))
-
- for s in slist:
- s.env_set(env, 1)
- scanner = env.get_scanner(os.path.splitext(s.name)[1])
- if scanner:
- s.scanner_set(scanner.instance(env))
+ if src_scanner:
+ t.src_scanner_set(src_key, src_scanner)