diff options
author | Steven Knight <knight@baldmt.com> | 2002-04-11 19:13:45 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-04-11 19:13:45 (GMT) |
commit | 651aa3558b6192f7eb3f77c8f2102c1e0e824707 (patch) | |
tree | 2804c3ec78c1d48080fe83dbe3d766c63a2926fa /src | |
parent | 0bf9bbc298b57b985bb84f8c60bbc70eca71bbaa (diff) | |
download | SCons-651aa3558b6192f7eb3f77c8f2102c1e0e824707.zip SCons-651aa3558b6192f7eb3f77c8f2102c1e0e824707.tar.gz SCons-651aa3558b6192f7eb3f77c8f2102c1e0e824707.tar.bz2 |
Make .sconsign files get written even if the build fails or is terminated. (Anthony Roach)
Diffstat (limited to 'src')
-rw-r--r-- | src/CHANGES.txt | 3 | ||||
-rw-r--r-- | src/engine/SCons/Node/__init__.py | 2 | ||||
-rw-r--r-- | src/engine/SCons/Script/__init__.py | 8 | ||||
-rw-r--r-- | src/engine/SCons/Taskmaster.py | 1 |
4 files changed, 10 insertions, 4 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index f7de1c8..2207f3a 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -46,6 +46,9 @@ RELEASE 0.07 - - Added $SOURCE variable as a synonym for $SOURCES[0]. + - Write out .sconsign files on error or interrupt so intermediate + build results are saved. + RELEASE 0.06 - Thu, 28 Mar 2002 01:24:29 -0600 diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py index cbaed7b..c8d5b2c 100644 --- a/src/engine/SCons/Node/__init__.py +++ b/src/engine/SCons/Node/__init__.py @@ -114,6 +114,8 @@ class Node: def built(self): """Called just after this node is sucessfully built.""" + self.store_bsig() + # Clear out the implicit dependency caches: # XXX this really should somehow be made more general and put # under the control of the scanners. diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py index 308552d..813c363 100644 --- a/src/engine/SCons/Script/__init__.py +++ b/src/engine/SCons/Script/__init__.py @@ -827,10 +827,12 @@ def _main(): taskmaster = SCons.Taskmaster.Taskmaster(nodes, task_class, calc) jobs = SCons.Job.Jobs(num_jobs, taskmaster) - jobs.start() - jobs.wait() - SCons.Sig.write() + try: + jobs.start() + jobs.wait() + finally: + SCons.Sig.write() def main(): try: diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py index 7985b2e..3fe96da 100644 --- a/src/engine/SCons/Taskmaster.py +++ b/src/engine/SCons/Taskmaster.py @@ -90,7 +90,6 @@ class Task: if self.targets[0].get_state() == SCons.Node.executing: self.set_tstates(SCons.Node.executed) for t in self.targets: - t.store_bsig() t.built() self.tm.executed(self.node) |