diff options
author | Steven Knight <knight@baldmt.com> | 2003-05-16 17:40:05 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-05-16 17:40:05 (GMT) |
commit | 178bb4ca29174ac1913693343f5d1eb1a3c18237 (patch) | |
tree | 9304278fee8d8e867662dfbb5276e7827a504297 /src/engine/SCons/Sig/__init__.py | |
parent | 487877ee4058bf8586c3a44b44202d161ec2441f (diff) | |
download | SCons-178bb4ca29174ac1913693343f5d1eb1a3c18237.zip SCons-178bb4ca29174ac1913693343f5d1eb1a3c18237.tar.gz SCons-178bb4ca29174ac1913693343f5d1eb1a3c18237.tar.bz2 |
SConf fixes. (Christoph Wiedemann)
Diffstat (limited to 'src/engine/SCons/Sig/__init__.py')
-rw-r--r-- | src/engine/SCons/Sig/__init__.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/engine/SCons/Sig/__init__.py b/src/engine/SCons/Sig/__init__.py index cf7a86f..1832e89 100644 --- a/src/engine/SCons/Sig/__init__.py +++ b/src/engine/SCons/Sig/__init__.py @@ -47,7 +47,7 @@ except ImportError: default_max_drift = 2*24*60*60 #XXX Get rid of the global array so this becomes re-entrant. -sig_files = [] +sig_files = {} # 1 means use build signature for derived source files # 0 means use content signature for derived source files @@ -55,9 +55,18 @@ build_signature = 1 def write(): global sig_files - for sig_file in sig_files: + for sig_file in sig_files.values(): sig_file.write() + +def SConsignFileFactory( dir, module=None): + try: + return sig_files[dir.path] + except KeyError: + sig_files[dir.path] = SConsignFile(dir, module) + return sig_files[dir.path] + + class SConsignEntry: """Objects of this type are pickled to the .sconsign file, so it @@ -110,9 +119,6 @@ class SConsignFile: SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning, "Ignoring corrupt .sconsign file: %s"%self.sconsign) - global sig_files - sig_files.append(self) - def get(self, filename): """ Get the .sconsign entry for a file @@ -279,7 +285,7 @@ class Calculator: bsig = cache.get_bsig() if bsig is not None: return bsig - + sigs = map(lambda n, c=self: n.calc_signature(c), children) if node.has_builder(): sigs.append(self.module.signature(node.get_executor())) |