summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Script
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-04-11 01:34:07 (GMT)
committerSteven Knight <knight@baldmt.com>2002-04-11 01:34:07 (GMT)
commit3207c9ca9efaac1b8d3f2174d2e5f336f92887ab (patch)
tree184b6e6e1fb12fde12568a6ad52149821670f28b /src/engine/SCons/Script
parent48b6454994a21440a03cacaf14bad63295a62bbf (diff)
downloadSCons-3207c9ca9efaac1b8d3f2174d2e5f336f92887ab.zip
SCons-3207c9ca9efaac1b8d3f2174d2e5f336f92887ab.tar.gz
SCons-3207c9ca9efaac1b8d3f2174d2e5f336f92887ab.tar.bz2
Implement implicit dependency caching.
Diffstat (limited to 'src/engine/SCons/Script')
-rw-r--r--src/engine/SCons/Script/__init__.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index d9406ec..308552d 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -163,7 +163,7 @@ max_drift = None
def get_all_children(node): return node.all_children(None)
-def get_derived_children(node):
+def get_derived_children(node):
children = node.all_children(None)
return filter(lambda x: x.builder, children)
@@ -224,7 +224,7 @@ opt_func = {} # mapping of option strings to functions
def options_init():
"""Initialize command-line options processing.
-
+
This is in a subroutine mainly so we can easily single-step over
it in the debugger.
"""
@@ -471,6 +471,14 @@ def options_init():
short = 'I', long = ['include-dir'], arg = 'DIRECTORY',
help = "Search DIRECTORY for imported Python modules.")
+ def opt_implicit_cache(opt, arg):
+ import SCons.Node
+ SCons.Node.implicit_cache = 1
+
+ Option(func = opt_implicit_cache,
+ long = ['implicit-cache'],
+ help = "Cache implicit dependencies")
+
def opt_j(opt, arg):
global num_jobs
try:
@@ -515,7 +523,7 @@ def options_init():
global max_drift
try:
max_drift = int(arg)
- except ValueError:
+ except ValueError:
raise UserError, "The argument for --max-drift must be an integer."
Option(func = opt_max_drift,
@@ -727,7 +735,7 @@ def _main():
os.chdir(script_dir)
else:
raise UserError, "No SConstruct file found."
-
+
SCons.Node.FS.default_fs.set_toplevel_dir(os.getcwd())
if not scripts:
@@ -810,10 +818,11 @@ def _main():
nodes = filter(lambda x: x is not None, map(Entry, targets))
if not calc:
- if max_drift is None:
- calc = SCons.Sig.Calculator(SCons.Sig.MD5)
- else:
- calc = SCons.Sig.Calculator(SCons.Sig.MD5, max_drift)
+ if max_drift is not None:
+ SCons.Sig.default_calc = SCons.Sig.Calculator(SCons.Sig.MD5,
+ max_drift)
+
+ calc = SCons.Sig.default_calc
taskmaster = SCons.Taskmaster.Taskmaster(nodes, task_class, calc)