diff options
author | Steven Knight <knight@baldmt.com> | 2002-03-20 16:45:30 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-03-20 16:45:30 (GMT) |
commit | a9272652019c6d0cad2f20737e210f820ec9394d (patch) | |
tree | 6c66bb13fa20cbd1e46b837e2ab734039cb68b6e /src/engine/SCons/Builder.py | |
parent | 70d4bf67b7fefce28d76d451c959ba633720214e (diff) | |
download | SCons-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.py | 15 |
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) |