summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Script/SConscript.py11
-rw-r--r--src/engine/SCons/Script/__init__.py32
2 files changed, 29 insertions, 14 deletions
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index a8ce5d7..9ecd3d7 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -1,4 +1,4 @@
-"""engine.SCons.SConscript
+"""SCons.Script.SConscript
This module defines the Python API provided to SConscript and SConstruct
files.
@@ -47,8 +47,10 @@ import os.path
import string
import sys
+def do_nothing(text): pass
+HelpFunction = do_nothing
+
default_targets = []
-print_help = 0
arguments = {}
launch_dir = os.path.abspath(os.curdir)
@@ -216,10 +218,7 @@ def Local(*targets):
t.set_local()
def Help(text):
- if print_help:
- print text
- print "Use scons -H for help about command-line options."
- sys.exit(0)
+ HelpFunction(text)
def BuildDir(build_dir, src_dir, duplicate=1):
SCons.Node.FS.default_fs.BuildDir(build_dir, src_dir, duplicate)
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index f0ac039..9fd1327 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -1,4 +1,4 @@
-"""engine.SCons.script
+"""SCons.Script
This file implements the main() function used by the scons script.
@@ -179,6 +179,9 @@ profiling = 0
max_drift = None
repositories = []
+# Exceptions for this module
+class PrintHelp(Exception):
+ pass
# utility functions
@@ -503,9 +506,11 @@ def options_init():
help = "Read FILE as the top-level SConstruct file.")
def opt_help(opt, arg):
- global help_option
+ global help_option
help_option = 'h'
- SCons.Script.SConscript.print_help = 1
+ def raisePrintHelp(text):
+ raise PrintHelp, text
+ SCons.Script.SConscript.HelpFunction = raisePrintHelp
Option(func = opt_help,
short = 'h', long = ['help'],
@@ -939,11 +944,20 @@ def _main():
for rep in repositories:
SCons.Node.FS.default_fs.Repository(rep)
- start_time = time.time()
- for script in scripts:
- SCons.Script.SConscript.SConscript(script)
- global sconscript_time
- sconscript_time = time.time() - start_time
+ print "scons: Reading SConscript files ..."
+ try:
+ start_time = time.time()
+ for script in scripts:
+ SCons.Script.SConscript.SConscript(script)
+ global sconscript_time
+ sconscript_time = time.time() - start_time
+ except PrintHelp, text:
+ print "scons: done reading SConscript files."
+ print text
+ print "Use scons -H for help about command-line options."
+ sys.exit(0)
+
+ print "scons: done reading SConscript files."
SCons.Node.FS.default_fs.chdir(SCons.Node.FS.default_fs.Top)
@@ -1011,6 +1025,7 @@ def _main():
calc = SCons.Sig.default_calc
+ print "scons: Building targets ..."
taskmaster = SCons.Taskmaster.Taskmaster(nodes, task_class, calc)
jobs = SCons.Job.Jobs(num_jobs, taskmaster)
@@ -1018,6 +1033,7 @@ def _main():
try:
jobs.run()
finally:
+ print "scons: done building targets."
SCons.Sig.write()
def main():