summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Script
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-11-04 23:01:27 (GMT)
committerSteven Knight <knight@baldmt.com>2002-11-04 23:01:27 (GMT)
commit487e0e7e93e26700e80a54f1ae46cf7f780ee34c (patch)
treeb78016fb847bb18a0b19c501edb145c360fbcc6b /src/engine/SCons/Script
parent8610c9b8c655e5749899be1a9664af2ed6f87a5e (diff)
downloadSCons-487e0e7e93e26700e80a54f1ae46cf7f780ee34c.zip
SCons-487e0e7e93e26700e80a54f1ae46cf7f780ee34c.tar.gz
SCons-487e0e7e93e26700e80a54f1ae46cf7f780ee34c.tar.bz2
Add a function to choose content signature type. (Anthony Roach)
Diffstat (limited to 'src/engine/SCons/Script')
-rw-r--r--src/engine/SCons/Script/SConscript.py15
-rw-r--r--src/engine/SCons/Script/__init__.py13
2 files changed, 23 insertions, 5 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index cb20ae9..2802e8f 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -39,7 +39,6 @@ import SCons.Node.FS
import SCons.Platform
import SCons.Tool
import SCons.Util
-import SCons.Sig
import SCons.Options
import SCons
@@ -258,6 +257,7 @@ def GetLaunchDir():
return launch_dir
def SetBuildSignatureType(type):
+ import SCons.Sig
if type == 'build':
SCons.Sig.build_signature = 1
elif type == 'content':
@@ -265,6 +265,18 @@ def SetBuildSignatureType(type):
else:
raise SCons.Errors.UserError, "Unknown build signature type '%s'"%type
+def SetContentSignatureType(type):
+ import SCons.Script
+ if type == 'MD5':
+ import SCons.Sig.MD5
+ SCons.Script.sig_module = SCons.Sig.MD5
+ elif type == 'timestamp':
+ import SCons.Sig.TimeStamp
+ SCons.Script.sig_module = SCons.Sig.TimeStamp
+ else:
+ raise SCons.Errors.UserError, "Unknown content signature type '%s'"%type
+
+
class Options(SCons.Options.Options):
def Update(self, env):
return SCons.Options.Options.Update(self, env, arguments)
@@ -321,6 +333,7 @@ def BuildDefaultGlobals():
globals['Object'] = SCons.Defaults.StaticObject
globals['Repository'] = SCons.Node.FS.default_fs.Repository
globals['SetBuildSignatureType'] = SetBuildSignatureType
+ globals['SetContentSignatureType'] = SetContentSignatureType
globals['StaticLibrary'] = SCons.Defaults.StaticLibrary
globals['StaticObject'] = SCons.Defaults.StaticObject
globals['SharedLibrary'] = SCons.Defaults.SharedLibrary
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index fd43b9a..1403724 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -61,7 +61,6 @@ import SCons.Node.FS
import SCons.Job
from SCons.Errors import *
import SCons.Sig
-import SCons.Sig.MD5
from SCons.Taskmaster import Taskmaster
import SCons.Builder
import SCons.Script.SConscript
@@ -178,6 +177,7 @@ exit_status = 0 # exit status, assume success by default
profiling = 0
max_drift = None
repositories = []
+sig_module = None
#
def print_it(text):
@@ -1040,9 +1040,14 @@ def _main():
if not calc:
if max_drift is not None:
- SCons.Sig.default_calc = SCons.Sig.Calculator(SCons.Sig.MD5,
- max_drift)
-
+ if sig_module is not None:
+ SCons.Sig.default_calc = SCons.Sig.Calculator(module=sig_module,
+ max_drift=max_drift)
+ else:
+ SCons.Sig.default_calc = SCons.Sig.Calculator(max_drift=max_drift)
+ elif sig_module is not None:
+ SCons.Sig.default_calc = SCons.Sig.Calculator(module=sig_module)
+
calc = SCons.Sig.default_calc
display("scons: Building targets ...")