summaryrefslogtreecommitdiffstats
path: root/third_party/scons/scons-local/SCons/Script/Main.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/scons/scons-local/SCons/Script/Main.py')
-rw-r--r--third_party/scons/scons-local/SCons/Script/Main.py45
1 files changed, 22 insertions, 23 deletions
diff --git a/third_party/scons/scons-local/SCons/Script/Main.py b/third_party/scons/scons-local/SCons/Script/Main.py
index 5624038..a91f410 100644
--- a/third_party/scons/scons-local/SCons/Script/Main.py
+++ b/third_party/scons/scons-local/SCons/Script/Main.py
@@ -12,7 +12,7 @@ it goes here.
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -34,7 +34,7 @@ it goes here.
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Script/Main.py 3842 2008/12/20 22:59:52 scons"
+__revision__ = "src/engine/SCons/Script/Main.py 3897 2009/01/13 06:45:54 scons"
import os
import os.path
@@ -155,7 +155,7 @@ _BuildFailures = []
def GetBuildFailures():
return _BuildFailures
-class BuildTask(SCons.Taskmaster.Task):
+class BuildTask(SCons.Taskmaster.OutOfDateTask):
"""An SCons build task."""
progress = ProgressObject
@@ -164,16 +164,14 @@ class BuildTask(SCons.Taskmaster.Task):
def prepare(self):
self.progress(self.targets[0])
- return SCons.Taskmaster.Task.prepare(self)
+ return SCons.Taskmaster.OutOfDateTask.prepare(self)
def needs_execute(self):
- target = self.targets[0]
- if target.get_state() == SCons.Node.executing:
+ if SCons.Taskmaster.OutOfDateTask.needs_execute(self):
return True
- else:
- if self.top and target.has_builder():
- display("scons: `%s' is up to date." % str(self.node))
- return False
+ if self.top and self.targets[0].has_builder():
+ display("scons: `%s' is up to date." % str(self.node))
+ return False
def execute(self):
if print_time:
@@ -181,7 +179,7 @@ class BuildTask(SCons.Taskmaster.Task):
global first_command_start
if first_command_start is None:
first_command_start = start_time
- SCons.Taskmaster.Task.execute(self)
+ SCons.Taskmaster.OutOfDateTask.execute(self)
if print_time:
global cumulative_command_time
global last_command_end
@@ -195,13 +193,13 @@ class BuildTask(SCons.Taskmaster.Task):
global exit_status
global this_build_status
if self.options.ignore_errors:
- SCons.Taskmaster.Task.executed(self)
+ SCons.Taskmaster.OutOfDateTask.executed(self)
elif self.options.keep_going:
- SCons.Taskmaster.Task.fail_continue(self)
+ SCons.Taskmaster.OutOfDateTask.fail_continue(self)
exit_status = status
this_build_status = status
else:
- SCons.Taskmaster.Task.fail_stop(self)
+ SCons.Taskmaster.OutOfDateTask.fail_stop(self)
exit_status = status
this_build_status = status
@@ -223,9 +221,9 @@ class BuildTask(SCons.Taskmaster.Task):
self.do_failed()
else:
print "scons: Nothing to be done for `%s'." % t
- SCons.Taskmaster.Task.executed(self)
+ SCons.Taskmaster.OutOfDateTask.executed(self)
else:
- SCons.Taskmaster.Task.executed(self)
+ SCons.Taskmaster.OutOfDateTask.executed(self)
def failed(self):
# Handle the failure of a build task. The primary purpose here
@@ -293,17 +291,17 @@ class BuildTask(SCons.Taskmaster.Task):
if tree:
print
print tree
- SCons.Taskmaster.Task.postprocess(self)
+ SCons.Taskmaster.OutOfDateTask.postprocess(self)
def make_ready(self):
"""Make a task ready for execution"""
- SCons.Taskmaster.Task.make_ready(self)
+ SCons.Taskmaster.OutOfDateTask.make_ready(self)
if self.out_of_date and self.options.debug_explain:
explanation = self.out_of_date[0].explain()
if explanation:
sys.stdout.write("scons: " + explanation)
-class CleanTask(SCons.Taskmaster.Task):
+class CleanTask(SCons.Taskmaster.AlwaysTask):
"""An SCons clean task."""
def fs_delete(self, path, pathstr, remove=1):
try:
@@ -379,11 +377,11 @@ class CleanTask(SCons.Taskmaster.Task):
def prepare(self):
pass
-class QuestionTask(SCons.Taskmaster.Task):
+class QuestionTask(SCons.Taskmaster.AlwaysTask):
"""An SCons task for the -q (question) option."""
def prepare(self):
pass
-
+
def execute(self):
if self.targets[0].get_state() != SCons.Node.up_to_date or \
(self.top and not self.targets[0].exists()):
@@ -1166,7 +1164,8 @@ def _build_targets(fs, options, targets, target_top):
failure_message=failure_message
):
if jobs.were_interrupted():
- progress_display("scons: Build interrupted.")
+ if not options.no_progress and not options.silent:
+ sys.stderr.write("scons: Build interrupted.\n")
global exit_status
global this_build_status
exit_status = 2
@@ -1251,7 +1250,7 @@ def main():
# __main__.__version__, hence there is no script version.
pass
parts.append(version_string("engine", SCons))
- parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation")
+ parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation")
version = string.join(parts, '')
import SConsOptions