diff options
| author | Steven Knight <knight@baldmt.com> | 2004-12-03 16:06:04 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2004-12-03 16:06:04 (GMT) |
| commit | f0c3476fdae7032e6232d112864518934ba8a13e (patch) | |
| tree | fe59fb9ac580b7b454482d93d0389cd0f00f12fc /src/engine/SCons/Taskmaster.py | |
| parent | 9bb2d035b8c5b5f1575ba40eb264d7a334f10542 (diff) | |
| download | SCons-f0c3476fdae7032e6232d112864518934ba8a13e.zip SCons-f0c3476fdae7032e6232d112864518934ba8a13e.tar.gz SCons-f0c3476fdae7032e6232d112864518934ba8a13e.tar.bz2 | |
Print --debug={tree,dtree,includes} even if the build has an error.
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
| -rw-r--r-- | src/engine/SCons/Taskmaster.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py index 6bd5e21..b528f44 100644 --- a/src/engine/SCons/Taskmaster.py +++ b/src/engine/SCons/Taskmaster.py @@ -152,8 +152,16 @@ class Task: for t in self.targets: t.set_state(SCons.Node.failed) self.tm.failed(self.node) + next_top = self.tm.next_top_level_candidate() self.tm.stop() + if next_top: + # We're stopping because of a build failure, but give the + # calling Task class a chance to postprocess() the top-level + # target under which the build failure occurred. + self.targets = [next_top] + self.top = 1 + def fail_continue(self): """Explicit continue-the-build failure. @@ -426,6 +434,14 @@ class Taskmaster: return not self.ready and (self.pending or self.executing) + def next_top_level_candidate(self): + candidates = self.candidates[:] + candidates.reverse() + for c in candidates: + if c in self.targets: + return c + return None + def stop(self): """Stop the current build completely.""" self.candidates = [] |
