diff options
| author | Steven Knight <knight@baldmt.com> | 2004-04-07 22:58:22 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2004-04-07 22:58:22 (GMT) |
| commit | f8c2e8cf9666d85adbd85d0bc0dbebaca76fde08 (patch) | |
| tree | 4848983354e94e8edb68331487af4eede8df5139 /src/engine/SCons/Taskmaster.py | |
| parent | 18904c3a781f097ca6f8b3ad06ff6ce991ad2640 (diff) | |
| download | SCons-f8c2e8cf9666d85adbd85d0bc0dbebaca76fde08.zip SCons-f8c2e8cf9666d85adbd85d0bc0dbebaca76fde08.tar.gz SCons-f8c2e8cf9666d85adbd85d0bc0dbebaca76fde08.tar.bz2 | |
Have Task.make_ready() create a list of the out-of-date Nodes.
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
| -rw-r--r-- | src/engine/SCons/Taskmaster.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py index 8afd847..ffdc065 100644 --- a/src/engine/SCons/Taskmaster.py +++ b/src/engine/SCons/Taskmaster.py @@ -169,17 +169,26 @@ class Task: def make_ready(self): """Make a task ready for execution.""" - state = SCons.Node.up_to_date + self.out_of_date = [] calc = self.tm.calc - for t in self.targets: - c = calc or t.calculator() - if not t.current(c): - state = SCons.Node.executing - for t in self.targets: - if state == SCons.Node.executing: + if calc: + for t in self.targets: + if not t.current(calc): + self.out_of_date.append(t) + else: + for t in self.targets: + if not t.current(t.calculator()): + self.out_of_date.append(t) + if self.out_of_date: + state = SCons.Node.executing + for t in self.targets: for side_effect in t.side_effects: side_effect.set_state(state) - t.set_state(state) + t.set_state(state) + else: + state = SCons.Node.up_to_date + for t in self.targets: + t.set_state(state) def postprocess(self): """Post process a task after it's been executed.""" |
