diff options
| author | Steven Knight <knight@baldmt.com> | 2002-01-29 13:38:31 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-01-29 13:38:31 (GMT) |
| commit | ce7092c12926b8cd2c0df191a68bb5d1f2693f45 (patch) | |
| tree | 8f8627b6bd4afedd996514b3d7aec580b7c8aab3 /src/engine/SCons/Taskmaster.py | |
| parent | dc36fb89f35ecbaf2efa843946d20cf1d030f5b8 (diff) | |
| download | SCons-ce7092c12926b8cd2c0df191a68bb5d1f2693f45.zip SCons-ce7092c12926b8cd2c0df191a68bb5d1f2693f45.tar.gz SCons-ce7092c12926b8cd2c0df191a68bb5d1f2693f45.tar.bz2 | |
Performance improvement: avoid recomputing signatures.
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
| -rw-r--r-- | src/engine/SCons/Taskmaster.py | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py index 7ac594b..b247029 100644 --- a/src/engine/SCons/Taskmaster.py +++ b/src/engine/SCons/Taskmaster.py @@ -57,11 +57,10 @@ class Task: def __init__(self, tm, targets, top): self.tm = tm self.targets = targets - self.bsig = {} self.top = top def execute(self): - if not self.targets[0].get_state() == SCons.Node.up_to_date: + if self.targets[0].get_state() != SCons.Node.up_to_date: self.targets[0].build() def get_target(self): @@ -69,14 +68,6 @@ class Task: """ return self.targets[0] - def set_bsig(self, target, bsig): - """Set the task's (*not* the target's) build signature - for this target. - - This will be used later to update the target's actual - build signature *if* the build succeeds.""" - self.bsig[target] = bsig - def set_tstates(self, state): """Set all of the target nodes's states.""" for t in self.targets: @@ -93,7 +84,7 @@ class Task: if self.targets[0].get_state() == SCons.Node.executing: self.set_tstates(SCons.Node.executed) for t in self.targets: - t.set_bsig(self.bsig[t]) + t.store_sigs() parents = {} for p in reduce(lambda x, y: x + y.get_parents(), self.targets, []): parents[p] = 1 @@ -140,7 +131,7 @@ class Task: state = SCons.Node.up_to_date for t in self.targets: bsig = self.tm.calc.bsig(t) - self.set_bsig(t, bsig) + t.set_bsig(bsig) if not self.tm.calc.current(t, bsig): state = SCons.Node.executing self.set_tstates(state) |
