summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Sig/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Sig/__init__.py')
-rw-r--r--src/engine/SCons/Sig/__init__.py61
1 files changed, 42 insertions, 19 deletions
diff --git a/src/engine/SCons/Sig/__init__.py b/src/engine/SCons/Sig/__init__.py
index 193a326..2c8edad 100644
--- a/src/engine/SCons/Sig/__init__.py
+++ b/src/engine/SCons/Sig/__init__.py
@@ -132,35 +132,61 @@ class SConsignFile:
Get the .sconsign entry for a file
filename - the filename whose signature will be returned
- returns - (timestamp, bsig, csig, implicit)
+ returns - (timestamp, bsig, csig)
"""
try:
entry = self.entries[filename]
return (entry.timestamp, entry.bsig, entry.csig)
except KeyError:
return (None, None, None)
-
- def set(self, filename, timestamp, bsig = None, csig = None):
+
+ def create_entry(self, filename):
"""
- Set the .sconsign entry for a file
-
- filename - the filename whose signature will be set
- timestamp - the timestamp
- module - the signature module being used
- bsig - the file's build signature
- csig - the file's content signature
+ Create an entry for the filename and return it, or if one already exists,
+ then return it.
"""
-
try:
entry = self.entries[filename]
except KeyError:
entry = SConsignEntry(self.module)
self.entries[filename] = entry
+
+ return entry
- entry.timestamp = timestamp
- entry.bsig = bsig
+ def set_csig(self, filename, csig):
+ """
+ Set the csig .sconsign entry for a file
+
+ filename - the filename whose signature will be set
+ csig - the file's content signature
+ """
+
+ entry = self.create_entry(filename)
entry.csig = csig
+ self.dirty = 1
+
+ def set_bsig(self, filename, bsig):
+ """
+ Set the csig .sconsign entry for a file
+
+ filename - the filename whose signature will be set
+ bsig - the file's built signature
+ """
+
+ entry = self.create_entry(filename)
+ entry.bsig = bsig
+ self.dirty = 1
+
+ def set_timestamp(self, filename, timestamp):
+ """
+ Set the csig .sconsign entry for a file
+
+ filename - the filename whose signature will be set
+ timestamp - the file's timestamp
+ """
+ entry = self.create_entry(filename)
+ entry.timestamp = timestamp
self.dirty = 1
def get_implicit(self, filename):
@@ -173,13 +199,9 @@ class SConsignFile:
def set_implicit(self, filename, implicit):
"""Cache the implicit dependencies for 'filename'."""
- try:
- entry = self.entries[filename]
- except KeyError:
- entry = SConsignEntry(self.module)
- self.entries[filename] = entry
-
+ entry = self.create_entry(filename)
entry.set_implicit(implicit)
+ self.dirty = 1
def write(self):
"""
@@ -325,6 +347,7 @@ class Calculator:
if self.max_drift >= 0 and (time.time() - mtime) > self.max_drift:
node.store_csig()
+ node.store_timestamp()
return csig