diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2019-12-28 17:12:41 +0100 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2019-12-28 17:12:41 +0100 | 
| commit | 56597a6a68e741355b301f91d5913d59cfb34eaa (patch) | |
| tree | 7531e41faf62f126984bf05b8d712f99c9520d5d /src/engine/SCons/Script | |
| parent | 56337453f0f3fbe34255e636d5d65974f4d17681 (diff) | |
New upstream version 3.1.2upstream/3.1.2upstream
Diffstat (limited to 'src/engine/SCons/Script')
| -rw-r--r-- | src/engine/SCons/Script/Interactive.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Script/Main.py | 11 | ||||
| -rw-r--r-- | src/engine/SCons/Script/Main.xml | 39 | ||||
| -rw-r--r-- | src/engine/SCons/Script/MainTests.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConsOptions.py | 24 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConscript.py | 26 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConscript.xml | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConscriptTests.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Script/__init__.py | 5 | 
9 files changed, 75 insertions, 38 deletions
diff --git a/src/engine/SCons/Script/Interactive.py b/src/engine/SCons/Script/Interactive.py index c756461..b2c134c 100644 --- a/src/engine/SCons/Script/Interactive.py +++ b/src/engine/SCons/Script/Interactive.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  from __future__ import print_function -__revision__ = "src/engine/SCons/Script/Interactive.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/Interactive.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """  SCons interactive mode diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index 663e337..5b7406c 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -38,7 +38,7 @@ deprecated_python_version = (2, 7, 0)  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -__revision__ = "src/engine/SCons/Script/Main.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/Main.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat @@ -75,6 +75,7 @@ print_objects = 0  print_memoizer = 0  print_stacktrace = 0  print_time = 0 +print_action_timestamps = 0  sconscript_time = 0  cumulative_command_time = 0  exit_status = 0   # final exit status, assume success by default @@ -209,6 +210,9 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask):              finish_time = time.time()              last_command_end = finish_time              cumulative_command_time = cumulative_command_time+finish_time-start_time +            if print_action_timestamps: +                sys.stdout.write("Command execution start timestamp: %s: %f\n"%(str(self.node), start_time)) +                sys.stdout.write("Command execution end timestamp: %s: %f\n"%(str(self.node), finish_time))              sys.stdout.write("Command execution time: %s: %f seconds\n"%(str(self.node), finish_time-start_time))      def do_failed(self, status=2): @@ -636,7 +640,7 @@ def _SConstruct_exists(dirname='', repositories=[], filelist=None):      return None  def _set_debug_values(options): -    global print_memoizer, print_objects, print_stacktrace, print_time +    global print_memoizer, print_objects, print_stacktrace, print_time, print_action_timestamps      debug_values = options.debug @@ -674,6 +678,9 @@ def _set_debug_values(options):          options.tree_printers.append(TreePrinter(status=True))      if "time" in debug_values:          print_time = 1 +    if "action-timestamps" in debug_values: +        print_time = 1 +        print_action_timestamps = 1      if "tree" in debug_values:          options.tree_printers.append(TreePrinter())      if "prepare" in debug_values: diff --git a/src/engine/SCons/Script/Main.xml b/src/engine/SCons/Script/Main.xml index c1c4bde..9966244 100644 --- a/src/engine/SCons/Script/Main.xml +++ b/src/engine/SCons/Script/Main.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0"?>  <!--  Copyright (c) 2001 - 2019 The SCons Foundation @@ -33,11 +33,11 @@ See its __doc__ string for a discussion of the format.  This function adds a new command-line option to be recognized.  The specified  <varname>arguments</varname> -are the same as supported by the standard Python -<function>optparse.add_option</function>() -method (with a few additional capabilities noted below); +are the same as supported by the <function>add_option</function> +method in the standard Python library module <emphasis>optparse</emphasis>, +with a few additional capabilities noted below;  see the documentation for -<literal>optparse</literal> +<emphasis>optparse</emphasis>  for a thorough discussion of its option-processing capabities.  </para> @@ -78,12 +78,22 @@ the option will have a default value of  </para>  <para> +Unlike regular <emphasis>optparse</emphasis>, option names +added via <function>AddOption</function> must be matched +exactly, the automatic matching of abbreviations on the +command line for long options is not supported. +To allow specific abbreviations, +include them in the &f-AddOption; call. +</para> + +<para>  Once a new command-line option has been added with  &f-AddOption;,  the option value may be accessed using  &f-GetOption;  or  <function>env.GetOption</function>(). +<!--  The value may also be set, using  &f-SetOption;  or @@ -95,6 +105,9 @@ Note, however, that a  value specified on the command line will  <emphasis>always</emphasis>  override a value set by any SConscript file. +--> +&f-SetOption; is not currently supported for +options added with &f-AddOption;.  </para>  <para> @@ -133,6 +146,22 @@ AddOption('--prefix',            help='installation prefix')  env = Environment(PREFIX = GetOption('prefix'))  </example_commands> + +<note> +<para> +While &AddOption; behaves like +<function>add_option</function>, +from the <emphasis>optparse</emphasis> module, +the behavior of options added by &AddOption; +which take arguments is underfined in +<command>scons</command> if whitespace +(rather than an <literal>=</literal> sign) is used as +the separator on the command line when +the option is invoked. +Such usage should be avoided. +</para> +</note> +  </summary>  </scons_function> diff --git a/src/engine/SCons/Script/MainTests.py b/src/engine/SCons/Script/MainTests.py index ac673a6..188700a 100644 --- a/src/engine/SCons/Script/MainTests.py +++ b/src/engine/SCons/Script/MainTests.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Script/MainTests.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/MainTests.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import unittest diff --git a/src/engine/SCons/Script/SConsOptions.py b/src/engine/SCons/Script/SConsOptions.py index ae08d41..e7a3fc1 100644 --- a/src/engine/SCons/Script/SConsOptions.py +++ b/src/engine/SCons/Script/SConsOptions.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Script/SConsOptions.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/SConsOptions.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import optparse  import re @@ -584,9 +584,15 @@ def Parser(version):                    help="Print build actions for files from CacheDir.")      def opt_invalid(group, value, options): +        """report an invalid option from a group"""          errmsg  = "`%s' is not a valid %s option type, try:\n" % (value, group)          return errmsg + "    %s" % ", ".join(options) +    def opt_invalid_rm(group, value, msg): +        """report an invalid option from a group: recognized but removed""" +        errmsg  = "`%s' is not a valid %s option type " % (value, group) +        return errmsg + msg +      config_options = ["auto", "force" ,"cache"]      opt_config_help = "Controls Configure subsystem: %s." \ @@ -604,9 +610,11 @@ def Parser(version):                    help="Search up directory tree for SConstruct,       "                         "build all Default() targets.") -    deprecated_debug_options = { +    deprecated_debug_options = {} + +    removed_debug_options = {          "dtree"         : '; please use --tree=derived instead', -        "nomemoizer"    : ' and has no effect', +        "nomemoizer"    : '; there is no replacement',          "stree"         : '; please use --tree=all,status instead',          "tree"          : '; please use --tree=all instead',      } @@ -614,15 +622,16 @@ def Parser(version):      debug_options = ["count", "duplicate", "explain", "findlibs",                       "includes", "memoizer", "memory", "objects",                       "pdb", "prepare", "presub", "stacktrace", -                     "time"] +                     "time", "action-timestamps"]      def opt_debug(option, opt, value__, parser,                    debug_options=debug_options, -                  deprecated_debug_options=deprecated_debug_options): +                  deprecated_debug_options=deprecated_debug_options, +                  removed_debug_options=removed_debug_options):          for value in value__.split(','):              if value in debug_options:                  parser.values.debug.append(value) -            elif value in list(deprecated_debug_options.keys()): +            elif value in deprecated_debug_options:                  parser.values.debug.append(value)                  try:                      parser.values.delayed_warnings @@ -632,6 +641,9 @@ def Parser(version):                  w = "The --debug=%s option is deprecated%s." % (value, msg)                  t = (SCons.Warnings.DeprecatedDebugOptionsWarning, w)                  parser.values.delayed_warnings.append(t) +            elif value in removed_debug_options: +                msg = removed_debug_options[value] +                raise OptionValueError(opt_invalid_rm('debug', value, msg))              else:                  raise OptionValueError(opt_invalid('debug', value, debug_options)) diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index c0a75f2..97073ba 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -27,7 +27,7 @@ files.  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -__revision__ = "src/engine/SCons/Script/SConscript.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/SConscript.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons  import SCons.Action @@ -42,7 +42,7 @@ import SCons.Platform  import SCons.SConf  import SCons.Script.Main  import SCons.Tool -import SCons.Util +from SCons.Util import is_List, is_String, is_Dict, flatten  from . import Main @@ -98,7 +98,7 @@ def compute_exports(exports):      retval = {}      try:          for export in exports: -            if SCons.Util.is_Dict(export): +            if is_Dict(export):                  retval.update(export)              else:                  try: @@ -133,7 +133,7 @@ call_stack = []  def Return(*vars, **kw):      retval = []      try: -        fvars = SCons.Util.flatten(vars) +        fvars = flatten(vars)          for var in fvars:              for v in var.split():                  retval.append(call_stack[-1].globals[v]) @@ -420,7 +420,7 @@ class SConsEnvironment(SCons.Environment.Base):              except KeyError:                  raise SCons.Errors.UserError("Invalid SConscript usage - no parameters") -            if not SCons.Util.is_List(dirs): +            if not is_List(dirs):                  dirs = [ dirs ]              dirs = list(map(str, dirs)) @@ -441,13 +441,13 @@ class SConsEnvironment(SCons.Environment.Base):              raise SCons.Errors.UserError("Invalid SConscript() usage - too many arguments") -        if not SCons.Util.is_List(files): +        if not is_List(files):              files = [ files ]          if kw.get('exports'):              exports.extend(self.Split(kw['exports'])) -        variant_dir = kw.get('variant_dir') or kw.get('build_dir') +        variant_dir = kw.get('variant_dir')          if variant_dir:              if len(files) != 1:                  raise SCons.Errors.UserError("Invalid SConscript() usage - can only specify one SConscript with a variant_dir") @@ -577,9 +577,6 @@ class SConsEnvironment(SCons.Environment.Base):              UserError: a script is not found and such exceptions are enabled.          """ -        if 'build_dir' in kw: -            msg = """The build_dir keyword has been deprecated; use the variant_dir keyword instead.""" -            SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg)          def subst_element(x, subst=self.subst):              if SCons.Util.is_List(x):                  x = list(map(subst, x)) @@ -589,15 +586,10 @@ class SConsEnvironment(SCons.Environment.Base):          ls = list(map(subst_element, ls))          subst_kw = {}          for key, val in kw.items(): -            if SCons.Util.is_String(val): +            if is_String(val):                  val = self.subst(val)              elif SCons.Util.is_List(val): -                result = [] -                for v in val: -                    if SCons.Util.is_String(v): -                        v = self.subst(v) -                    result.append(v) -                val = result +                val = [self.subst(v) if is_String(v) else v for v in val]              subst_kw[key] = val          files, exports = self._get_SConscript_filenames(ls, subst_kw) diff --git a/src/engine/SCons/Script/SConscript.xml b/src/engine/SCons/Script/SConscript.xml index 2d77aa3..5b5e482 100644 --- a/src/engine/SCons/Script/SConscript.xml +++ b/src/engine/SCons/Script/SConscript.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0"?>  <!--  Copyright (c) 2001 - 2019 The SCons Foundation diff --git a/src/engine/SCons/Script/SConscriptTests.py b/src/engine/SCons/Script/SConscriptTests.py index 4fb8687..8b17ed4 100644 --- a/src/engine/SCons/Script/SConscriptTests.py +++ b/src/engine/SCons/Script/SConscriptTests.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Script/SConscriptTests.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/SConscriptTests.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Script.SConscript diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py index cb44f2b..5292c10 100644 --- a/src/engine/SCons/Script/__init__.py +++ b/src/engine/SCons/Script/__init__.py @@ -34,7 +34,7 @@ it goes here.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Script/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Script/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import time  start_time = time.time() @@ -314,7 +314,6 @@ GlobalDefaultEnvironmentFunctions = [      'AddPreAction',      'Alias',      'AlwaysBuild', -    'BuildDir',      'CacheDir',      'Clean',      #The Command() method is handled separately, below. @@ -346,10 +345,8 @@ GlobalDefaultEnvironmentFunctions = [      'SConsignFile',      'SideEffect',      'SourceCode', -    'SourceSignatures',      'Split',      'Tag', -    'TargetSignatures',      'Value',      'VariantDir',  ]  | 
