summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/FS.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-02-11 11:27:07 (GMT)
committerSteven Knight <knight@baldmt.com>2003-02-11 11:27:07 (GMT)
commit08d5aaf06f5030d59404a586164eb6121c538973 (patch)
tree603b1aa19ce8717891505490845e61bcc77eb0ac /src/engine/SCons/Node/FS.py
parent0f5282ba0d7a5b96c2e5bec6eedb3027aa3fd52a (diff)
downloadSCons-08d5aaf06f5030d59404a586164eb6121c538973.zip
SCons-08d5aaf06f5030d59404a586164eb6121c538973.tar.gz
SCons-08d5aaf06f5030d59404a586164eb6121c538973.tar.bz2
Fix some performance problems with the --implicit-cache option. (Anthony Roach)
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r--src/engine/SCons/Node/FS.py20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 2057797..651d280 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -850,34 +850,26 @@ class File(Entry):
else:
return 0
- def calc_signature(self, calc):
+ def calc_signature(self, calc, cache=None):
"""
Select and calculate the appropriate build signature for a File.
self - the File node
calc - the signature calculation module
+ cache - alternate node to use for the signature cache
returns - the signature
-
- This method does not store the signature in the node or
- in the .sconsign file.
"""
if self.has_builder():
if SCons.Sig.build_signature:
- if not hasattr(self, 'bsig'):
- self.set_bsig(calc.bsig(self.rfile()))
- return self.get_bsig()
+ return calc.bsig(self.rfile(), self)
else:
- if not hasattr(self, 'csig'):
- self.set_csig(calc.csig(self.rfile()))
- return self.get_csig()
+ return calc.csig(self.rfile(), self)
elif not self.rexists():
return None
else:
- if not hasattr(self, 'csig'):
- self.set_csig(calc.csig(self.rfile()))
- return self.get_csig()
-
+ return calc.csig(self.rfile(), self)
+
def store_csig(self):
self.dir.sconsign().set_csig(self.name, self.get_csig())