diff options
| author | Steven Knight <knight@baldmt.com> | 2005-02-13 13:05:22 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2005-02-13 13:05:22 (GMT) |
| commit | 28c5194366b0f6a08b6b0b30fe1ec438a4ac3498 (patch) | |
| tree | 71e69e51423a35771427ba095d28a6f323086f7a /src/engine/SCons/Executor.py | |
| parent | fdaf65d36261a72883e6ed72336dff967a535e62 (diff) | |
| download | SCons-28c5194366b0f6a08b6b0b30fe1ec438a4ac3498.zip SCons-28c5194366b0f6a08b6b0b30fe1ec438a4ac3498.tar.gz SCons-28c5194366b0f6a08b6b0b30fe1ec438a4ac3498.tar.bz2 | |
Refactor Environment/Executor/Node scanner interaction a little. Put --debug={dtree,includes,stree,tree} in separate tests.
Diffstat (limited to 'src/engine/SCons/Executor.py')
| -rw-r--r-- | src/engine/SCons/Executor.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/engine/SCons/Executor.py b/src/engine/SCons/Executor.py index 013a125..5b45d55 100644 --- a/src/engine/SCons/Executor.py +++ b/src/engine/SCons/Executor.py @@ -88,20 +88,24 @@ class Executor: cwd = None return scanner.path(env, cwd, self.targets, self.sources) + def get_kw(self, kw={}): + result = self.builder_kw.copy() + result.update(kw) + return result + def do_nothing(self, target, errfunc, kw): pass def do_execute(self, target, errfunc, kw): """Actually execute the action list.""" - kw = kw.copy() - kw.update(self.builder_kw) - apply(self.action, (self.targets, self.sources, - self.get_build_env(), errfunc), kw) + apply(self.action, + (self.targets, self.sources, self.get_build_env(), errfunc), + self.get_kw(kw)) # use extra indirection because with new-style objects (Python 2.2 # and above) we can't override special methods, and nullify() needs # to be able to do this. - + def __call__(self, target, errfunc, **kw): self.do_execute(target, errfunc, kw) @@ -117,7 +121,7 @@ class Executor: self.sources.extend(slist) # another extra indirection for new-style objects and nullify... - + def my_str(self): return self.action.genstring(self.targets, self.sources, @@ -163,7 +167,8 @@ class Executor: if scanner: initial_scanners = lambda src, s=scanner: (src, s) else: - initial_scanners = lambda src, e=env: (src, e.get_scanner(src.scanner_key())) + kw = self.get_kw() + initial_scanners = lambda src, e=env, kw=kw: (src, src.get_scanner(e, kw)) scanner_list = map(initial_scanners, self.sources) scanner_list = filter(remove_null_scanners, scanner_list) scanner_list = map(select_specific_scanner, scanner_list) |
