summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/FS.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-03-03 08:10:04 (GMT)
committerSteven Knight <knight@baldmt.com>2003-03-03 08:10:04 (GMT)
commit1eac1ba89777cce14d1ed50322ee163e8b38fd1e (patch)
tree517fc35207f1c5ce1d6fb8e116a24be5a40506ec /src/engine/SCons/Node/FS.py
parentbc08cde50aee2b6a495506819b97014fdb880058 (diff)
downloadSCons-1eac1ba89777cce14d1ed50322ee163e8b38fd1e.zip
SCons-1eac1ba89777cce14d1ed50322ee163e8b38fd1e.tar.gz
SCons-1eac1ba89777cce14d1ed50322ee163e8b38fd1e.tar.bz2
Push files to the CacheDir() before calling the superclass built() method, which may clear the build signature.
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r--src/engine/SCons/Node/FS.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index a6dd7ae..551ae06 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -1037,9 +1037,13 @@ class File(Entry):
SCons.Node.Node.build(self)
def built(self):
- SCons.Node.Node.built(self)
+ """Called just after this node is sucessfully built."""
+ # Push this file out to cache before the superclass Node.built()
+ # method has a chance to clear the build signature, which it
+ # will do if this file has a source scanner.
if self.fs.CachePath and os.path.exists(self.path):
CachePush(self, None, None)
+ SCons.Node.Node.built(self)
self.found_includes = {}
if hasattr(self, '_exists'):
delattr(self, '_exists')
@@ -1160,7 +1164,10 @@ class File(Entry):
def cachepath(self):
if self.fs.CachePath:
- bsig = str(self.get_bsig())
+ bsig = self.get_bsig()
+ if bsig is None:
+ raise SCons.Errors.InternalError, "cachepath(%s) found a bsig of None" % self.path
+ bsig = str(bsig)
subdir = string.upper(bsig[0])
dir = os.path.join(self.fs.CachePath, subdir)
return dir, os.path.join(dir, bsig)