diff options
Diffstat (limited to 'engine/SCons')
189 files changed, 572 insertions, 483 deletions
diff --git a/engine/SCons/Action.py b/engine/SCons/Action.py index be4a5ff..b4310f6 100644 --- a/engine/SCons/Action.py +++ b/engine/SCons/Action.py @@ -98,7 +98,7 @@ way for wrapping up the functions.  # 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/Action.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Action.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import pickle diff --git a/engine/SCons/Builder.py b/engine/SCons/Builder.py index c3bdf5c..e4e5215 100644 --- a/engine/SCons/Builder.py +++ b/engine/SCons/Builder.py @@ -98,7 +98,7 @@ There are the following methods for internal use within this module:  # 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/Builder.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Builder.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import collections @@ -396,16 +396,13 @@ class BuilderBase(object):          self.env = env          self.single_source = single_source          if 'overrides' in overrides: -            SCons.Warnings.warn(SCons.Warnings.DeprecatedBuilderKeywordsWarning, -                "The \"overrides\" keyword to Builder() creation has been deprecated;\n" +\ -                "\tspecify the items as keyword arguments to the Builder() call instead.") -            overrides.update(overrides['overrides']) -            del overrides['overrides'] +            msg =  "The \"overrides\" keyword to Builder() creation has been removed;\n" +\ +                "\tspecify the items as keyword arguments to the Builder() call instead." +            raise TypeError(msg)          if 'scanner' in overrides: -            SCons.Warnings.warn(SCons.Warnings.DeprecatedBuilderKeywordsWarning, -                                "The \"scanner\" keyword to Builder() creation has been deprecated;\n" -                                "\tuse: source_scanner or target_scanner as appropriate.") -            del overrides['scanner'] +            msg = "The \"scanner\" keyword to Builder() creation has been removed;\n" +\ +                "\tuse: source_scanner or target_scanner as appropriate." +            raise TypeError(msg)          self.overrides = overrides          self.set_suffix(suffix) diff --git a/engine/SCons/CacheDir.py b/engine/SCons/CacheDir.py index a1133ae..20a7df4 100644 --- a/engine/SCons/CacheDir.py +++ b/engine/SCons/CacheDir.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/CacheDir.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/CacheDir.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """  CacheDir support diff --git a/engine/SCons/Conftest.py b/engine/SCons/Conftest.py index 1163aa3..c24adf8 100644 --- a/engine/SCons/Conftest.py +++ b/engine/SCons/Conftest.py @@ -290,6 +290,10 @@ char %s();""" % function_name  #include <assert.h>  %(hdr)s +#if _MSC_VER && !__INTEL_COMPILER +    #pragma function(%(name)s) +#endif +  int main(void) {  #if defined (__stub_%(name)s) || defined (__stub___%(name)s)    fail fail fail diff --git a/engine/SCons/Debug.py b/engine/SCons/Debug.py index 12d07fd..ef7dfff 100644 --- a/engine/SCons/Debug.py +++ b/engine/SCons/Debug.py @@ -31,7 +31,7 @@ caller_trace()  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Debug.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Debug.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import sys diff --git a/engine/SCons/Defaults.py b/engine/SCons/Defaults.py index 63ba450..c39c417 100644 --- a/engine/SCons/Defaults.py +++ b/engine/SCons/Defaults.py @@ -33,7 +33,7 @@ from distutils.msvccompiler.  #  from __future__ import division -__revision__ = "src/engine/SCons/Defaults.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Defaults.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os diff --git a/engine/SCons/Environment.py b/engine/SCons/Environment.py index 7a0954d..c51df40 100644 --- a/engine/SCons/Environment.py +++ b/engine/SCons/Environment.py @@ -31,7 +31,7 @@ Environment  # 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/Environment.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Environment.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import copy @@ -46,7 +46,7 @@ import SCons.Builder  import SCons.Debug  from SCons.Debug import logInstanceCreation  import SCons.Defaults -import SCons.Errors +from SCons.Errors import UserError, BuildError  import SCons.Memoize  import SCons.Node  import SCons.Node.Alias @@ -75,11 +75,6 @@ CalculatorArgs = {}  semi_deepcopy = SCons.Util.semi_deepcopy  semi_deepcopy_dict = SCons.Util.semi_deepcopy_dict -# Pull UserError into the global name space for the benefit of -# Environment().SourceSignatures(), which has some import statements -# which seem to mess up its ability to reference SCons directly. -UserError = SCons.Errors.UserError -  def alias_builder(env, target, source):      pass @@ -154,7 +149,7 @@ def _set_BUILDERS(env, key, value):          env._dict[key] = bd      for k, v in value.items():          if not SCons.Builder.is_a_Builder(v): -            raise SCons.Errors.UserError('%s is not a Builder.' % repr(v)) +            raise UserError('%s is not a Builder.' % repr(v))      bd.update(value)  def _del_SCANNERS(env, key): @@ -431,7 +426,7 @@ class SubstitutionEnvironment(object):              # efficient than calling another function or a method.              if key not in self._dict \                 and not _is_valid_var.match(key): -                    raise SCons.Errors.UserError("Illegal construction variable `%s'" % key) +                    raise UserError("Illegal construction variable `%s'" % key)              self._dict[key] = value      def get(self, key, default=None): @@ -707,31 +702,34 @@ class SubstitutionEnvironment(object):              append_next_arg_to = None   # for multi-word args              for arg in params:                  if append_next_arg_to: -                   if append_next_arg_to == 'CPPDEFINES': -                       append_define(arg) -                   elif append_next_arg_to == '-include': -                       t = ('-include', self.fs.File(arg)) -                       dict['CCFLAGS'].append(t) -                   elif append_next_arg_to == '-isysroot': -                       t = ('-isysroot', arg) -                       dict['CCFLAGS'].append(t) -                       dict['LINKFLAGS'].append(t) -                   elif append_next_arg_to == '-isystem': -                       t = ('-isystem', arg) -                       dict['CCFLAGS'].append(t) -                   elif append_next_arg_to == '-iquote': -                       t = ('-iquote', arg) -                       dict['CCFLAGS'].append(t) -                   elif append_next_arg_to == '-idirafter': -                       t = ('-idirafter', arg) -                       dict['CCFLAGS'].append(t) -                   elif append_next_arg_to == '-arch': -                       t = ('-arch', arg) -                       dict['CCFLAGS'].append(t) -                       dict['LINKFLAGS'].append(t) -                   else: -                       dict[append_next_arg_to].append(arg) -                   append_next_arg_to = None +                    if append_next_arg_to == 'CPPDEFINES': +                        append_define(arg) +                    elif append_next_arg_to == '-include': +                        t = ('-include', self.fs.File(arg)) +                        dict['CCFLAGS'].append(t) +                    elif append_next_arg_to == '-imacros': +                        t = ('-imacros', self.fs.File(arg)) +                        dict['CCFLAGS'].append(t) +                    elif append_next_arg_to == '-isysroot': +                        t = ('-isysroot', arg) +                        dict['CCFLAGS'].append(t) +                        dict['LINKFLAGS'].append(t) +                    elif append_next_arg_to == '-isystem': +                        t = ('-isystem', arg) +                        dict['CCFLAGS'].append(t) +                    elif append_next_arg_to == '-iquote': +                        t = ('-iquote', arg) +                        dict['CCFLAGS'].append(t) +                    elif append_next_arg_to == '-idirafter': +                        t = ('-idirafter', arg) +                        dict['CCFLAGS'].append(t) +                    elif append_next_arg_to == '-arch': +                        t = ('-arch', arg) +                        dict['CCFLAGS'].append(t) +                        dict['LINKFLAGS'].append(t) +                    else: +                        dict[append_next_arg_to].append(arg) +                    append_next_arg_to = None                  elif not arg[0] in ['-', '+']:                      dict['LIBS'].append(self.fs.File(arg))                  elif arg == '-dylib_file': @@ -790,7 +788,7 @@ class SubstitutionEnvironment(object):                  elif arg == '-mwindows':                      dict['LINKFLAGS'].append(arg)                  elif arg[:5] == '-std=': -                    if arg[5:].find('++')!=-1: +                    if '++' in arg[5:]:                          key='CXXFLAGS'                      else:                          key='CFLAGS' @@ -798,7 +796,7 @@ class SubstitutionEnvironment(object):                  elif arg[0] == '+':                      dict['CCFLAGS'].append(arg)                      dict['LINKFLAGS'].append(arg) -                elif arg in ['-include', '-isysroot', '-isystem', '-iquote', '-idirafter', '-arch']: +                elif arg in ['-include', '-imacros', '-isysroot', '-isystem', '-iquote', '-idirafter', '-arch']:                      append_next_arg_to = arg                  else:                      dict['CCFLAGS'].append(arg) @@ -1430,14 +1428,6 @@ class Base(SubstitutionEnvironment):          if SCons.Debug.track_instances: logInstanceCreation(self, 'Environment.EnvironmentClone')          return clone -    def Copy(self, *args, **kw): -        global _warn_copy_deprecated -        if _warn_copy_deprecated: -            msg = "The env.Copy() method is deprecated; use the env.Clone() method instead." -            SCons.Warnings.warn(SCons.Warnings.DeprecatedCopyWarning, msg) -            _warn_copy_deprecated = False -        return self.Clone(*args, **kw) -      def _changed_build(self, dependency, target, prev_ni, repo_node=None):          if dependency.changed_state(target, prev_ni, repo_node):              return 1 @@ -1493,8 +1483,14 @@ class Base(SubstitutionEnvironment):          self.copy_from_cache = copy_function +      def Detect(self, progs):          """Return the first available program in progs. + +        :param progs: one or more command names to check for +        :type progs: str or list +        :returns str: first name from progs that can be found. +          """          if not SCons.Util.is_List(progs):              progs = [ progs ] @@ -1503,7 +1499,17 @@ class Base(SubstitutionEnvironment):              if path: return prog          return None +      def Dictionary(self, *args): +        """Return construction variables from an environment. + +        :param *args: (optional) variable names to look up +        :returns: if args omitted, the dictionary of all constr. vars. +            If one arg, the corresponding value is returned. +            If more than one arg, a list of values is returned. +        :raises KeyError: if any of *args is not in the construction env. + +        """          if not args:              return self._dict          dlist = [self._dict[x] for x in args] @@ -1511,23 +1517,28 @@ class Base(SubstitutionEnvironment):              dlist = dlist[0]          return dlist -    def Dump(self, key = None): -        """ -        Using the standard Python pretty printer, return the contents of the -        scons build environment as a string. -        If the key passed in is anything other than None, then that will -        be used as an index into the build environment dictionary and -        whatever is found there will be fed into the pretty printer. Note -        that this key is case sensitive. +    def Dump(self, key=None): +        """ Return pretty-printed string of construction variables. + +        :param key: if None, format the whole dict of variables. +            Else look up and format just the value for key. +          """          import pprint          pp = pprint.PrettyPrinter(indent=2)          if key: -            dict = self.Dictionary(key) +            cvars = self.Dictionary(key)          else: -            dict = self.Dictionary() -        return pp.pformat(dict) +            cvars = self.Dictionary() + +        # TODO: pprint doesn't do a nice job on path-style values +        # if the paths contain spaces (i.e. Windows), because the +        # algorithm tries to break lines on spaces, while breaking +        # on the path-separator would be more "natural". Is there +        # a better way to format those? +        return pp.pformat(cvars) +      def FindIxes(self, paths, prefix, suffix):          """ @@ -1600,7 +1611,7 @@ class Base(SubstitutionEnvironment):              for td in tdlist:                  targets.extend(td[0])              if len(targets) > 1: -                raise SCons.Errors.UserError( +                raise UserError(                              "More than one dependency target found in `%s':  %s"                                              % (filename, targets))          for target, depends in tdlist: @@ -1918,14 +1929,6 @@ class Base(SubstitutionEnvironment):              t.set_always_build()          return tlist -    def BuildDir(self, *args, **kw): -        msg = """BuildDir() and the build_dir keyword have been deprecated;\n\tuse VariantDir() and the variant_dir keyword instead.""" -        SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg) -        if 'build_dir' in kw: -            kw['variant_dir'] = kw['build_dir'] -            del kw['build_dir'] -        return self.VariantDir(*args, **kw) -      def Builder(self, **kw):          nkw = self.subst_kw(kw)          return SCons.Builder.Builder(**nkw) @@ -1964,13 +1967,42 @@ class Base(SubstitutionEnvironment):          be any type that the Builder constructor will accept          for an action."""          bkw = { -            'action' : action, -            'target_factory' : self.fs.Entry, -            'source_factory' : self.fs.Entry, +            'action': action, +            'target_factory': self.fs.Entry, +            'source_factory': self.fs.Entry,          } -        try: bkw['source_scanner'] = kw['source_scanner'] -        except KeyError: pass -        else: del kw['source_scanner'] +        # source scanner +        try: +            bkw['source_scanner'] = kw['source_scanner'] +        except KeyError: +            pass +        else: +            del kw['source_scanner'] + +        # target scanner +        try: +            bkw['target_scanner'] = kw['target_scanner'] +        except KeyError: +            pass +        else: +            del kw['target_scanner'] + +        # source factory +        try: +            bkw['source_factory'] = kw['source_factory'] +        except KeyError: +            pass +        else: +            del kw['source_factory'] + +        # target factory +        try: +            bkw['target_factory'] = kw['target_factory'] +        except KeyError: +            pass +        else: +            del kw['target_factory'] +                      bld = SCons.Builder.Builder(**bkw)          return bld(self, target, source, **kw) @@ -2039,7 +2071,7 @@ class Base(SubstitutionEnvironment):          """          action = self.Action(action, *args, **kw)          result = action([], [], self) -        if isinstance(result, SCons.Errors.BuildError): +        if isinstance(result, BuildError):              errstr = result.errstr              if result.filename:                  errstr = result.filename + ': ' + errstr @@ -2159,7 +2191,7 @@ class Base(SubstitutionEnvironment):          for side_effect in side_effects:              if side_effect.multiple_side_effect_has_builder(): -                raise SCons.Errors.UserError("Multiple ways to build the same target were specified for: %s" % str(side_effect)) +                raise UserError("Multiple ways to build the same target were specified for: %s" % str(side_effect))              side_effect.add_source(targets)              side_effect.side_effect = 1              self.Precious(side_effect) @@ -2177,24 +2209,6 @@ class Base(SubstitutionEnvironment):              entry.set_src_builder(builder)          return entries -    def SourceSignatures(self, type): -        global _warn_source_signatures_deprecated -        if _warn_source_signatures_deprecated: -            msg = "The env.SourceSignatures() method is deprecated;\n" + \ -                  "\tconvert your build to use the env.Decider() method instead." -            SCons.Warnings.warn(SCons.Warnings.DeprecatedSourceSignaturesWarning, msg) -            _warn_source_signatures_deprecated = False -        type = self.subst(type) -        self.src_sig_type = type -        if type == 'MD5': -            if not SCons.Util.md5: -                raise UserError("MD5 signatures are not available in this version of Python.") -            self.decide_source = self._changed_content -        elif type == 'timestamp': -            self.decide_source = self._changed_timestamp_match -        else: -            raise UserError("Unknown source signature type '%s'" % type) -      def Split(self, arg):          """This function converts a string or list into a list of strings          or Nodes.  This makes things easier for users by allowing files to @@ -2216,28 +2230,6 @@ class Base(SubstitutionEnvironment):          else:              return [self.subst(arg)] -    def TargetSignatures(self, type): -        global _warn_target_signatures_deprecated -        if _warn_target_signatures_deprecated: -            msg = "The env.TargetSignatures() method is deprecated;\n" + \ -                  "\tconvert your build to use the env.Decider() method instead." -            SCons.Warnings.warn(SCons.Warnings.DeprecatedTargetSignaturesWarning, msg) -            _warn_target_signatures_deprecated = False -        type = self.subst(type) -        self.tgt_sig_type = type -        if type in ('MD5', 'content'): -            if not SCons.Util.md5: -                raise UserError("MD5 signatures are not available in this version of Python.") -            self.decide_target = self._changed_content -        elif type == 'timestamp': -            self.decide_target = self._changed_timestamp_match -        elif type == 'build': -            self.decide_target = self._changed_build -        elif type == 'source': -            self.decide_target = self._changed_source -        else: -            raise UserError("Unknown target signature type '%s'"%type) -      def Value(self, value, built_value=None):          """          """ @@ -2322,7 +2314,7 @@ class OverrideEnvironment(Base):              return attr.clone(self)          else:              return attr -         +      def __setattr__(self, name, value):          setattr(self.__dict__['__subject'], name, value) @@ -2334,7 +2326,7 @@ class OverrideEnvironment(Base):              return self.__dict__['__subject'].__getitem__(key)      def __setitem__(self, key, value):          if not is_valid_construction_var(key): -            raise SCons.Errors.UserError("Illegal construction variable `%s'" % key) +            raise UserError("Illegal construction variable `%s'" % key)          self.__dict__['overrides'][key] = value      def __delitem__(self, key):          try: diff --git a/engine/SCons/Errors.py b/engine/SCons/Errors.py index d6e1d4a..0bad46d 100644 --- a/engine/SCons/Errors.py +++ b/engine/SCons/Errors.py @@ -28,7 +28,7 @@ and user errors in SCons.  """ -__revision__ = "src/engine/SCons/Errors.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Errors.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import shutil  import SCons.Util diff --git a/engine/SCons/Executor.py b/engine/SCons/Executor.py index c3e22f5..5c95e95 100644 --- a/engine/SCons/Executor.py +++ b/engine/SCons/Executor.py @@ -28,7 +28,7 @@ Nodes.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  from __future__ import print_function -__revision__ = "src/engine/SCons/Executor.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Executor.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import collections diff --git a/engine/SCons/Job.py b/engine/SCons/Job.py index a126d1c..214a0c9 100644 --- a/engine/SCons/Job.py +++ b/engine/SCons/Job.py @@ -29,7 +29,7 @@ stop, and wait on jobs.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Job.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Job.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat diff --git a/engine/SCons/Memoize.py b/engine/SCons/Memoize.py index 6bef437..8f33a1b 100644 --- a/engine/SCons/Memoize.py +++ b/engine/SCons/Memoize.py @@ -22,7 +22,7 @@  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Memoize.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Memoize.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """Memoizer diff --git a/engine/SCons/Node/Alias.py b/engine/SCons/Node/Alias.py index 302a704..5c62677 100644 --- a/engine/SCons/Node/Alias.py +++ b/engine/SCons/Node/Alias.py @@ -30,7 +30,7 @@ This creates a hash of global Aliases (dummy targets).  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Node/Alias.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Node/Alias.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import collections diff --git a/engine/SCons/Node/FS.py b/engine/SCons/Node/FS.py index 0d903de..65d1ac1 100644 --- a/engine/SCons/Node/FS.py +++ b/engine/SCons/Node/FS.py @@ -33,7 +33,7 @@ that can be used by scripts or modules looking for the canonical default.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  from __future__ import print_function -__revision__ = "src/engine/SCons/Node/FS.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Node/FS.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import fnmatch  import os @@ -963,14 +963,14 @@ class Entry(Base):      def disambiguate(self, must_exist=None):          """ -        """ -        if self.isdir(): -            self.__class__ = Dir -            self._morph() -        elif self.isfile(): +        """  +        if self.isfile():              self.__class__ = File              self._morph()              self.clear() +        elif self.isdir(): +            self.__class__ = Dir +            self._morph()          else:              # There was nothing on-disk at this location, so look in              # the src directory. diff --git a/engine/SCons/Node/Python.py b/engine/SCons/Node/Python.py index 8726332..ec23b3f 100644 --- a/engine/SCons/Node/Python.py +++ b/engine/SCons/Node/Python.py @@ -27,7 +27,7 @@ Python nodes.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Node/Python.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Node/Python.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Node diff --git a/engine/SCons/Node/__init__.py b/engine/SCons/Node/__init__.py index c1f8d89..32f4bba 100644 --- a/engine/SCons/Node/__init__.py +++ b/engine/SCons/Node/__init__.py @@ -43,7 +43,7 @@ from __future__ import print_function  # 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/Node/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Node/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import collections @@ -614,6 +614,7 @@ class Node(object, with_metaclass(NoSlotsPyPy)):          self._func_rexists = 1          self._func_get_contents = 0          self._func_target_from_source = 0 +        self.ninfo = None          self.clear_memoized_values() @@ -1131,11 +1132,10 @@ class Node(object, with_metaclass(NoSlotsPyPy)):          return ninfo      def get_ninfo(self): -        try: -            return self.ninfo -        except AttributeError: -            self.ninfo = self.new_ninfo() +        if self.ninfo is not None:              return self.ninfo +        self.ninfo = self.new_ninfo() +        return self.ninfo      def new_binfo(self):          binfo = self.BuildInfo() diff --git a/engine/SCons/PathList.py b/engine/SCons/PathList.py index 8de79df..ad02936 100644 --- a/engine/SCons/PathList.py +++ b/engine/SCons/PathList.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/PathList.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/PathList.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """SCons.PathList diff --git a/engine/SCons/Platform/__init__.py b/engine/SCons/Platform/__init__.py index 66bff49..2e3d6cd 100644 --- a/engine/SCons/Platform/__init__.py +++ b/engine/SCons/Platform/__init__.py @@ -43,7 +43,7 @@ their own platform definition.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Platform/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat diff --git a/engine/SCons/Platform/aix.py b/engine/SCons/Platform/aix.py index de61c16..c5964b6 100644 --- a/engine/SCons/Platform/aix.py +++ b/engine/SCons/Platform/aix.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/aix.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/aix.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import subprocess diff --git a/engine/SCons/Platform/cygwin.py b/engine/SCons/Platform/cygwin.py index d630be3..fe71ea9 100644 --- a/engine/SCons/Platform/cygwin.py +++ b/engine/SCons/Platform/cygwin.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/cygwin.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/cygwin.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import sys diff --git a/engine/SCons/Platform/darwin.py b/engine/SCons/Platform/darwin.py index a5bfc52..ff0d50d 100644 --- a/engine/SCons/Platform/darwin.py +++ b/engine/SCons/Platform/darwin.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/darwin.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/darwin.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import posix  import os diff --git a/engine/SCons/Platform/hpux.py b/engine/SCons/Platform/hpux.py index d49d1a8..3158438 100644 --- a/engine/SCons/Platform/hpux.py +++ b/engine/SCons/Platform/hpux.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/hpux.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/hpux.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import posix diff --git a/engine/SCons/Platform/irix.py b/engine/SCons/Platform/irix.py index 687f3e1..8643b14 100644 --- a/engine/SCons/Platform/irix.py +++ b/engine/SCons/Platform/irix.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/irix.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/irix.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import posix diff --git a/engine/SCons/Platform/mingw.py b/engine/SCons/Platform/mingw.py index 010e72a..1961606 100644 --- a/engine/SCons/Platform/mingw.py +++ b/engine/SCons/Platform/mingw.py @@ -27,7 +27,7 @@ Platform-specific initialization for the MinGW system.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/mingw.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/mingw.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import sys diff --git a/engine/SCons/Platform/os2.py b/engine/SCons/Platform/os2.py index bd414cf..eb2c679 100644 --- a/engine/SCons/Platform/os2.py +++ b/engine/SCons/Platform/os2.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/os2.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/os2.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import win32  def generate(env): diff --git a/engine/SCons/Platform/posix.py b/engine/SCons/Platform/posix.py index c1e43ca..c9f9a2d 100644 --- a/engine/SCons/Platform/posix.py +++ b/engine/SCons/Platform/posix.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/posix.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/posix.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import errno  import os diff --git a/engine/SCons/Platform/sunos.py b/engine/SCons/Platform/sunos.py index a9a7d97..90418d5 100644 --- a/engine/SCons/Platform/sunos.py +++ b/engine/SCons/Platform/sunos.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/sunos.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/sunos.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import posix diff --git a/engine/SCons/Platform/virtualenv.py b/engine/SCons/Platform/virtualenv.py index ae3068d..3416b41 100644 --- a/engine/SCons/Platform/virtualenv.py +++ b/engine/SCons/Platform/virtualenv.py @@ -26,7 +26,7 @@ Support for virtualenv.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/virtualenv.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/virtualenv.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import sys diff --git a/engine/SCons/Platform/win32.py b/engine/SCons/Platform/win32.py index 3eff40f..b386afa 100644 --- a/engine/SCons/Platform/win32.py +++ b/engine/SCons/Platform/win32.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Platform/win32.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Platform/win32.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path @@ -51,10 +51,6 @@ try:      import msvcrt      import win32api      import win32con - -    msvcrt.get_osfhandle -    win32api.SetHandleInformation -    win32con.HANDLE_FLAG_INHERIT  except ImportError:      parallel_msg = \          "you do not seem to have the pywin32 extensions installed;\n" + \ @@ -66,28 +62,44 @@ except AttributeError:  else:      parallel_msg = None -    _builtin_open = open +    if sys.version_info.major == 2: +        import __builtin__ + +        _builtin_file = __builtin__.file +        _builtin_open = __builtin__.open + +        def _scons_fixup_mode(mode): +            """Adjust 'mode' to mark handle as non-inheritable. + +            SCons is multithreaded, so allowing handles to be inherited by +            children opens us up to races, where (e.g.) processes spawned by +            the Taskmaster may inherit and retain references to files opened +            by other threads. This may lead to sharing violations and, +            ultimately, build failures. + +            By including 'N' as part of fopen's 'mode' parameter, all file +            handles returned from these functions are atomically marked as +            non-inheritable. +            """ +            if not mode: +                # Python's default is 'r'. +                # https://docs.python.org/2/library/functions.html#open +                mode = 'rN' +            elif 'N' not in mode: +                mode += 'N' +            return mode -    def _scons_open(*args, **kw): -        fp = _builtin_open(*args, **kw) -        win32api.SetHandleInformation(msvcrt.get_osfhandle(fp.fileno()), -                                      win32con.HANDLE_FLAG_INHERIT, -                                      0) -        return fp +        class _scons_file(_builtin_file): +            def __init__(self, name, mode=None, *args, **kwargs): +                _builtin_file.__init__(self, name, _scons_fixup_mode(mode), +                                       *args, **kwargs) -    open = _scons_open +        def _scons_open(name, mode=None, *args, **kwargs): +            return _builtin_open(name, _scons_fixup_mode(mode), +                                 *args, **kwargs) -    if sys.version_info.major == 2: -        _builtin_file = file -        class _scons_file(_builtin_file): -            def __init__(self, *args, **kw): -                _builtin_file.__init__(self, *args, **kw) -                win32api.SetHandleInformation(msvcrt.get_osfhandle(self.fileno()), -                 win32con.HANDLE_FLAG_INHERIT, 0) -        file = _scons_file -    else: -        # No longer needed for python 3.4 and above. Files are opened non sharable -        pass +        __builtin__.file = _scons_file +        __builtin__.open = _scons_open diff --git a/engine/SCons/SConf.py b/engine/SCons/SConf.py index c6bbda6..e714636 100644 --- a/engine/SCons/SConf.py +++ b/engine/SCons/SConf.py @@ -35,7 +35,7 @@ libraries are installed, if some command line options are supported etc.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/SConf.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/SConf.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat diff --git a/engine/SCons/SConsign.py b/engine/SCons/SConsign.py index 157468f..24bfd21 100644 --- a/engine/SCons/SConsign.py +++ b/engine/SCons/SConsign.py @@ -29,7 +29,7 @@ Writing and reading information to the .sconsign file or files.  from __future__ import print_function -__revision__ = "src/engine/SCons/SConsign.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/SConsign.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat diff --git a/engine/SCons/Scanner/C.py b/engine/SCons/Scanner/C.py index d3df545..32e0499 100644 --- a/engine/SCons/Scanner/C.py +++ b/engine/SCons/Scanner/C.py @@ -27,7 +27,7 @@ This module implements the dependency scanner for C/C++ code.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/C.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/C.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Node.FS  import SCons.Scanner diff --git a/engine/SCons/Scanner/D.py b/engine/SCons/Scanner/D.py index aa018d6..427c596 100644 --- a/engine/SCons/Scanner/D.py +++ b/engine/SCons/Scanner/D.py @@ -30,7 +30,7 @@ Coded by Andy Friesen  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/D.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/D.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Scanner diff --git a/engine/SCons/Scanner/Dir.py b/engine/SCons/Scanner/Dir.py index 0c08820..c3e825c 100644 --- a/engine/SCons/Scanner/Dir.py +++ b/engine/SCons/Scanner/Dir.py @@ -20,7 +20,7 @@  # 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/Scanner/Dir.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/Dir.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Node.FS  import SCons.Scanner diff --git a/engine/SCons/Scanner/Fortran.py b/engine/SCons/Scanner/Fortran.py index 50cc16e..93be76c 100644 --- a/engine/SCons/Scanner/Fortran.py +++ b/engine/SCons/Scanner/Fortran.py @@ -26,7 +26,7 @@ This module implements the dependency scanner for Fortran code.  # 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/Scanner/Fortran.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/Fortran.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import re diff --git a/engine/SCons/Scanner/IDL.py b/engine/SCons/Scanner/IDL.py index 65704d8..6569c1f 100644 --- a/engine/SCons/Scanner/IDL.py +++ b/engine/SCons/Scanner/IDL.py @@ -28,7 +28,7 @@ Definition Language) files.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/IDL.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/IDL.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Node.FS  import SCons.Scanner diff --git a/engine/SCons/Scanner/LaTeX.py b/engine/SCons/Scanner/LaTeX.py index 37970d0..4e43eaa 100644 --- a/engine/SCons/Scanner/LaTeX.py +++ b/engine/SCons/Scanner/LaTeX.py @@ -27,7 +27,7 @@ This module implements the dependency scanner for LaTeX code.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/LaTeX.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/LaTeX.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import re diff --git a/engine/SCons/Scanner/Prog.py b/engine/SCons/Scanner/Prog.py index 4a5e478..5f9015d 100644 --- a/engine/SCons/Scanner/Prog.py +++ b/engine/SCons/Scanner/Prog.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/Prog.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/Prog.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Node  import SCons.Node.FS diff --git a/engine/SCons/Scanner/RC.py b/engine/SCons/Scanner/RC.py index 2bfdfc9..47c6ca2 100644 --- a/engine/SCons/Scanner/RC.py +++ b/engine/SCons/Scanner/RC.py @@ -28,7 +28,7 @@ Definition Language) files.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/RC.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/RC.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import re diff --git a/engine/SCons/Scanner/SWIG.py b/engine/SCons/Scanner/SWIG.py index 26f5080..7ff78a6 100644 --- a/engine/SCons/Scanner/SWIG.py +++ b/engine/SCons/Scanner/SWIG.py @@ -27,7 +27,7 @@ This module implements the dependency scanner for SWIG code.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/SWIG.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/SWIG.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Scanner diff --git a/engine/SCons/Scanner/__init__.py b/engine/SCons/Scanner/__init__.py index f2fa418..9884533 100644 --- a/engine/SCons/Scanner/__init__.py +++ b/engine/SCons/Scanner/__init__.py @@ -27,7 +27,7 @@ The Scanner package for the SCons software construction utility.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Scanner/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Scanner/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import re diff --git a/engine/SCons/Script/Interactive.py b/engine/SCons/Script/Interactive.py index c756461..b2c134c 100644 --- a/engine/SCons/Script/Interactive.py +++ b/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/engine/SCons/Script/Main.py b/engine/SCons/Script/Main.py index 663e337..5b7406c 100644 --- a/engine/SCons/Script/Main.py +++ b/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/engine/SCons/Script/SConsOptions.py b/engine/SCons/Script/SConsOptions.py index ae08d41..e7a3fc1 100644 --- a/engine/SCons/Script/SConsOptions.py +++ b/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/engine/SCons/Script/SConscript.py b/engine/SCons/Script/SConscript.py index c0a75f2..97073ba 100644 --- a/engine/SCons/Script/SConscript.py +++ b/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/engine/SCons/Script/__init__.py b/engine/SCons/Script/__init__.py index cb44f2b..5292c10 100644 --- a/engine/SCons/Script/__init__.py +++ b/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',  ] diff --git a/engine/SCons/Subst.py b/engine/SCons/Subst.py index 618adf5..23030f4 100644 --- a/engine/SCons/Subst.py +++ b/engine/SCons/Subst.py @@ -26,7 +26,7 @@ SCons string substitution.  # 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/Subst.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Subst.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import collections  import re @@ -409,7 +409,7 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={      handles separating command lines into lists of arguments, so see      that function if that's what you're looking for.      """ -    if isinstance(strSubst, str) and strSubst.find('$') < 0: +    if (isinstance(strSubst, str) and '$' not in strSubst) or isinstance(strSubst, CmdStringHolder):          return strSubst      class StringSubber(object): diff --git a/engine/SCons/Taskmaster.py b/engine/SCons/Taskmaster.py index 421e2b2..60d2ac3 100644 --- a/engine/SCons/Taskmaster.py +++ b/engine/SCons/Taskmaster.py @@ -54,7 +54,7 @@ __doc__ = """          target(s) that it decides need to be evaluated and/or built.  """ -__revision__ = "src/engine/SCons/Taskmaster.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Taskmaster.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from itertools import chain  import operator @@ -874,8 +874,10 @@ class Taskmaster(object):              # These nodes have not even been visited yet.  Add              # them to the list so that on some next pass we can              # take a stab at evaluating them (or their children). -            children_not_visited.reverse() -            self.candidates.extend(self.order(children_not_visited)) +            if children_not_visited: +                if len(children_not_visited) > 1: +                    children_not_visited.reverse() +                self.candidates.extend(self.order(children_not_visited))              # if T and children_not_visited:              #    T.write(self.trace_message('     adding to candidates: %s' % map(str, children_not_visited))) diff --git a/engine/SCons/Tool/386asm.py b/engine/SCons/Tool/386asm.py index 16f5beb..d398f07 100644 --- a/engine/SCons/Tool/386asm.py +++ b/engine/SCons/Tool/386asm.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/386asm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/386asm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.PharLapCommon import addPharLapPaths  import SCons.Util diff --git a/engine/SCons/Tool/DCommon.py b/engine/SCons/Tool/DCommon.py index fca89a1..0e0cf09 100644 --- a/engine/SCons/Tool/DCommon.py +++ b/engine/SCons/Tool/DCommon.py @@ -31,7 +31,7 @@ Coded by Russel Winder (russel@winder.org.uk)  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/DCommon.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/DCommon.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/FortranCommon.py b/engine/SCons/Tool/FortranCommon.py index a5201bb..af573fa 100644 --- a/engine/SCons/Tool/FortranCommon.py +++ b/engine/SCons/Tool/FortranCommon.py @@ -28,7 +28,7 @@ Stuff for processing Fortran, common to all fortran dialects.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/FortranCommon.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/FortranCommon.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import re  import os.path diff --git a/engine/SCons/Tool/GettextCommon.py b/engine/SCons/Tool/GettextCommon.py index 0578108..f03c256 100644 --- a/engine/SCons/Tool/GettextCommon.py +++ b/engine/SCons/Tool/GettextCommon.py @@ -24,7 +24,7 @@ Used by several tools of `gettext` toolset.  # 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/Tool/GettextCommon.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/GettextCommon.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Warnings  import re diff --git a/engine/SCons/Tool/JavaCommon.py b/engine/SCons/Tool/JavaCommon.py index 6091fdf..f9e3684 100644 --- a/engine/SCons/Tool/JavaCommon.py +++ b/engine/SCons/Tool/JavaCommon.py @@ -27,7 +27,7 @@ Stuff for processing Java.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/JavaCommon.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/JavaCommon.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/MSCommon/__init__.py b/engine/SCons/Tool/MSCommon/__init__.py index 67b5be8..c184aad 100644 --- a/engine/SCons/Tool/MSCommon/__init__.py +++ b/engine/SCons/Tool/MSCommon/__init__.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """  Common functions for Microsoft Visual Studio and Visual C/C++. diff --git a/engine/SCons/Tool/MSCommon/arch.py b/engine/SCons/Tool/MSCommon/arch.py index 4475af1..75e7264 100644 --- a/engine/SCons/Tool/MSCommon/arch.py +++ b/engine/SCons/Tool/MSCommon/arch.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """Module to define supported Windows chip architectures.  """ diff --git a/engine/SCons/Tool/MSCommon/common.py b/engine/SCons/Tool/MSCommon/common.py index 428eaba..6f979e6 100644 --- a/engine/SCons/Tool/MSCommon/common.py +++ b/engine/SCons/Tool/MSCommon/common.py @@ -25,31 +25,67 @@ Common helper functions for working with the Microsoft tool chain.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/MSCommon/common.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/common.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import copy +import json  import os -import subprocess  import re +import subprocess +import sys  import SCons.Util +# SCONS_MSCOMMON_DEBUG is internal-use so undocumented: +# set to '-' to print to console, else set to filename to log to  LOGFILE = os.environ.get('SCONS_MSCOMMON_DEBUG')  if LOGFILE == '-':      def debug(message):          print(message)  elif LOGFILE: -    try: -        import logging -    except ImportError: -        debug = lambda message: open(LOGFILE, 'a').write(message + '\n') -    else: -        logging.basicConfig(filename=LOGFILE, level=logging.DEBUG) -        debug = logging.getLogger(name=__name__).debug +    import logging +    logging.basicConfig( +        format='%(relativeCreated)05dms:pid%(process)05d:MSCommon/%(filename)s:%(message)s', +        filename=LOGFILE, +        level=logging.DEBUG) +    debug = logging.getLogger(name=__name__).debug  else:      debug = lambda x: None +# SCONS_CACHE_MSVC_CONFIG is public, and is documented. +CONFIG_CACHE = os.environ.get('SCONS_CACHE_MSVC_CONFIG') +if CONFIG_CACHE in ('1', 'true', 'True'): +    CONFIG_CACHE = os.path.join(os.path.expanduser('~'), '.scons_msvc_cache') + +def read_script_env_cache(): +    """ fetch cached msvc env vars if requested, else return empty dict """ +    envcache = {} +    if CONFIG_CACHE: +        try: +            with open(CONFIG_CACHE, 'r') as f: +                envcache = json.load(f) +        #TODO can use more specific FileNotFoundError when py2 dropped +        except IOError: +            # don't fail if no cache file, just proceed without it +            pass +    return envcache + + +def write_script_env_cache(cache): +    """ write out cache of msvc env vars if requested """ +    if CONFIG_CACHE: +        try: +            with open(CONFIG_CACHE, 'w') as f: +                json.dump(cache, f, indent=2) +        except TypeError: +            # data can't serialize to json, don't leave partial file +            os.remove(CONFIG_CACHE) +        except IOError: +            # can't write the file, just skip +            pass + +  _is_win64 = None  def is_win64(): @@ -199,7 +235,6 @@ def get_output(vcbat, args = None, env = None):      if stderr:          # TODO: find something better to do with stderr;          # this at least prevents errors from getting swallowed. -        import sys          sys.stderr.write(stderr)      if popen.wait() != 0:          raise IOError(stderr.decode("mbcs")) @@ -207,14 +242,15 @@ def get_output(vcbat, args = None, env = None):      output = stdout.decode("mbcs")      return output -def parse_output(output, keep=("INCLUDE", "LIB", "LIBPATH", "PATH", 'VSCMD_ARG_app_plat')): +KEEPLIST = ("INCLUDE", "LIB", "LIBPATH", "PATH", 'VSCMD_ARG_app_plat') +def parse_output(output, keep=KEEPLIST):      """      Parse output from running visual c++/studios vcvarsall.bat and running set      To capture the values listed in keep      """      # dkeep is a dict associating key: path_list, where key is one item from -    # keep, and pat_list the associated list of paths +    # keep, and path_list the associated list of paths      dkeep = dict([(i, []) for i in keep])      # rdk will  keep the regex to match the .bat file output line starts diff --git a/engine/SCons/Tool/MSCommon/netframework.py b/engine/SCons/Tool/MSCommon/netframework.py index 0ba84a5..c2d5d7c 100644 --- a/engine/SCons/Tool/MSCommon/netframework.py +++ b/engine/SCons/Tool/MSCommon/netframework.py @@ -20,7 +20,7 @@  # 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/Tool/MSCommon/netframework.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/netframework.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """  """ diff --git a/engine/SCons/Tool/MSCommon/sdk.py b/engine/SCons/Tool/MSCommon/sdk.py index a2adf3d..811ee24 100644 --- a/engine/SCons/Tool/MSCommon/sdk.py +++ b/engine/SCons/Tool/MSCommon/sdk.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """Module to detect the Platform/Windows SDK @@ -118,11 +118,11 @@ class SDKDefinition(object):          if (host_arch != target_arch):              arch_string='%s_%s'%(host_arch,target_arch) -        debug("sdk.py: get_sdk_vc_script():arch_string:%s host_arch:%s target_arch:%s"%(arch_string, +        debug("get_sdk_vc_script():arch_string:%s host_arch:%s target_arch:%s"%(arch_string,                                                             host_arch,                                                             target_arch))          file=self.vc_setup_scripts.get(arch_string,None) -        debug("sdk.py: get_sdk_vc_script():file:%s"%file) +        debug("get_sdk_vc_script():file:%s"%file)          return file  class WindowsSDK(SDKDefinition): @@ -286,14 +286,14 @@ InstalledSDKMap = None  def get_installed_sdks():      global InstalledSDKList      global InstalledSDKMap -    debug('sdk.py:get_installed_sdks()') +    debug('get_installed_sdks()')      if InstalledSDKList is None:          InstalledSDKList = []          InstalledSDKMap = {}          for sdk in SupportedSDKList: -            debug('MSCommon/sdk.py: trying to find SDK %s' % sdk.version) +            debug('trying to find SDK %s' % sdk.version)              if sdk.get_sdk_dir(): -                debug('MSCommon/sdk.py:found SDK %s' % sdk.version) +                debug('found SDK %s' % sdk.version)                  InstalledSDKList.append(sdk)                  InstalledSDKMap[sdk.version] = sdk      return InstalledSDKList @@ -346,13 +346,13 @@ def get_default_sdk():      return InstalledSDKList[0]  def mssdk_setup_env(env): -    debug('sdk.py:mssdk_setup_env()') +    debug('mssdk_setup_env()')      if 'MSSDK_DIR' in env:          sdk_dir = env['MSSDK_DIR']          if sdk_dir is None:              return          sdk_dir = env.subst(sdk_dir) -        debug('sdk.py:mssdk_setup_env: Using MSSDK_DIR:{}'.format(sdk_dir)) +        debug('mssdk_setup_env: Using MSSDK_DIR:{}'.format(sdk_dir))      elif 'MSSDK_VERSION' in env:          sdk_version = env['MSSDK_VERSION']          if sdk_version is None: @@ -364,22 +364,22 @@ def mssdk_setup_env(env):              msg = "SDK version %s is not installed" % sdk_version              raise SCons.Errors.UserError(msg)          sdk_dir = mssdk.get_sdk_dir() -        debug('sdk.py:mssdk_setup_env: Using MSSDK_VERSION:%s'%sdk_dir) +        debug('mssdk_setup_env: Using MSSDK_VERSION:%s'%sdk_dir)      elif 'MSVS_VERSION' in env:          msvs_version = env['MSVS_VERSION'] -        debug('sdk.py:mssdk_setup_env:Getting MSVS_VERSION from env:%s'%msvs_version) +        debug('mssdk_setup_env:Getting MSVS_VERSION from env:%s'%msvs_version)          if msvs_version is None: -            debug('sdk.py:mssdk_setup_env thinks msvs_version is None') +            debug('mssdk_setup_env thinks msvs_version is None')              return          msvs_version = env.subst(msvs_version)          from . import vs          msvs = vs.get_vs_by_version(msvs_version) -        debug('sdk.py:mssdk_setup_env:msvs is :%s'%msvs) +        debug('mssdk_setup_env:msvs is :%s'%msvs)          if not msvs: -            debug('sdk.py:mssdk_setup_env: no VS version detected, bailingout:%s'%msvs) +            debug('mssdk_setup_env: no VS version detected, bailingout:%s'%msvs)              return          sdk_version = msvs.sdk_version -        debug('sdk.py:msvs.sdk_version is %s'%sdk_version) +        debug('msvs.sdk_version is %s'%sdk_version)          if not sdk_version:              return          mssdk = get_sdk_by_version(sdk_version) @@ -388,13 +388,13 @@ def mssdk_setup_env(env):              if not mssdk:                  return          sdk_dir = mssdk.get_sdk_dir() -        debug('sdk.py:mssdk_setup_env: Using MSVS_VERSION:%s'%sdk_dir) +        debug('mssdk_setup_env: Using MSVS_VERSION:%s'%sdk_dir)      else:          mssdk = get_default_sdk()          if not mssdk:              return          sdk_dir = mssdk.get_sdk_dir() -        debug('sdk.py:mssdk_setup_env: not using any env values. sdk_dir:%s'%sdk_dir) +        debug('mssdk_setup_env: not using any env values. sdk_dir:%s'%sdk_dir)      set_sdk_by_directory(env, sdk_dir) diff --git a/engine/SCons/Tool/MSCommon/vc.py b/engine/SCons/Tool/MSCommon/vc.py index f0ae946..6d0a7ec 100644 --- a/engine/SCons/Tool/MSCommon/vc.py +++ b/engine/SCons/Tool/MSCommon/vc.py @@ -30,7 +30,7 @@  #   * test on 64 bits XP +  VS 2005 (and VS 6 if possible)  #   * SDK  #   * Assembly -__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """Module for Visual C/C++ detection and configuration.  """ @@ -40,7 +40,10 @@ import SCons.Util  import subprocess  import os  import platform +import sys  from string import digits as string_digits +if sys.version_info[0] == 2: +    import collections  import SCons.Warnings  from SCons.Tool import find_program_path @@ -152,22 +155,24 @@ def get_msvc_version_numeric(msvc_version):      return ''.join([x for  x in msvc_version if x in string_digits + '.'])  def get_host_target(env): -    debug('vc.py:get_host_target()') +    debug('get_host_target()')      host_platform = env.get('HOST_ARCH')      if not host_platform:          host_platform = platform.machine() -        # TODO(2.5):  the native Python platform.machine() function returns -        # '' on all Python versions before 2.6, after which it also uses -        # PROCESSOR_ARCHITECTURE. -        if not host_platform: -            host_platform = os.environ.get('PROCESSOR_ARCHITECTURE', '') + +    # Solaris returns i86pc for both 32 and 64 bit architectures +    if host_platform == "i86pc": +        if platform.architecture()[0] == "64bit": +            host_platform = "amd64" +        else: +            host_platform = "x86"      # Retain user requested TARGET_ARCH      req_target_platform = env.get('TARGET_ARCH') -    debug('vc.py:get_host_target() req_target_platform:%s'%req_target_platform) +    debug('get_host_target() req_target_platform:%s'%req_target_platform) -    if  req_target_platform: +    if req_target_platform:          # If user requested a specific platform then only try that one.          target_platform = req_target_platform      else: @@ -403,7 +408,7 @@ def find_batch_file(env,msvc_version,host_arch,target_arch):      if pdir is None:          raise NoVersionFound("No version of Visual Studio found") -    debug('vc.py: find_batch_file() in {}'.format(pdir)) +    debug('find_batch_file() in {}'.format(pdir))      # filter out e.g. "Exp" from the version name      msvc_ver_numeric = get_msvc_version_numeric(msvc_version) @@ -423,17 +428,17 @@ def find_batch_file(env,msvc_version,host_arch,target_arch):          debug("Not found: %s" % batfilename)          batfilename = None -    installed_sdks=get_installed_sdks() +    installed_sdks = get_installed_sdks()      for _sdk in installed_sdks:          sdk_bat_file = _sdk.get_sdk_vc_script(host_arch,target_arch)          if not sdk_bat_file: -            debug("vc.py:find_batch_file() not found:%s"%_sdk) +            debug("find_batch_file() not found:%s"%_sdk)          else:              sdk_bat_file_path = os.path.join(pdir,sdk_bat_file)              if os.path.exists(sdk_bat_file_path): -                debug('vc.py:find_batch_file() sdk_bat_file_path:%s'%sdk_bat_file_path) -                return (batfilename,sdk_bat_file_path) -    return (batfilename,None) +                debug('find_batch_file() sdk_bat_file_path:%s'%sdk_bat_file_path) +                return (batfilename, sdk_bat_file_path) +    return (batfilename, None)  __INSTALLED_VCS_RUN = None @@ -592,21 +597,57 @@ def reset_installed_vcs():  #    env2 = Environment(tools='msvs')  # we can greatly improve the speed of the second and subsequent Environment  # (or Clone) calls by memoizing the environment variables set by vcvars*.bat. -script_env_stdout_cache = {} +# +# Updated: by 2018, vcvarsall.bat had gotten so expensive (vs2017 era) +# it was breaking CI builds because the test suite starts scons so many +# times and the existing memo logic only helped with repeated calls +# within the same scons run. Windows builds on the CI system were split +# into chunks to get around single-build time limits. +# With VS2019 it got even slower and an optional persistent cache file +# was introduced. The cache now also stores only the parsed vars,  +# not the entire output of running the batch file - saves a bit +# of time not parsing every time. + +script_env_cache = None +  def script_env(script, args=None): -    cache_key = (script, args) -    stdout = script_env_stdout_cache.get(cache_key, None) -    if stdout is None: +    global script_env_cache + +    if script_env_cache is None: +        script_env_cache = common.read_script_env_cache() +    cache_key = "{}--{}".format(script, args) +    cache_data = script_env_cache.get(cache_key, None) +    if cache_data is None:          stdout = common.get_output(script, args) -        script_env_stdout_cache[cache_key] = stdout -    # Stupid batch files do not set return code: we take a look at the -    # beginning of the output for an error message instead -    olines = stdout.splitlines() -    if olines[0].startswith("The specified configuration type is missing"): -        raise BatchFileExecutionError("\n".join(olines[:2])) +        # Stupid batch files do not set return code: we take a look at the +        # beginning of the output for an error message instead +        olines = stdout.splitlines() +        if olines[0].startswith("The specified configuration type is missing"): +            raise BatchFileExecutionError("\n".join(olines[:2])) + +        cache_data = common.parse_output(stdout) +        script_env_cache[cache_key] = cache_data +        # once we updated cache, give a chance to write out if user wanted +        common.write_script_env_cache(script_env_cache) +    else: +        #TODO: Python 2 cleanup +        # If we "hit" data from the json file, we have a Py2 problem: +        # keys & values will be unicode. don't detect, just convert. +        if sys.version_info[0] == 2: +            def convert(data): +                if isinstance(data, basestring): +                    return str(data) +                elif isinstance(data, collections.Mapping): +                    return dict(map(convert, data.iteritems())) +                elif isinstance(data, collections.Iterable): +                    return type(data)(map(convert, data)) +                else: +                    return data -    return common.parse_output(stdout) +            cache_data = convert(cache_data) +  +    return cache_data  def get_default_version(env):      debug('get_default_version()') @@ -635,12 +676,12 @@ def get_default_version(env):          debug('installed_vcs:%s' % installed_vcs)          if not installed_vcs:              #msg = 'No installed VCs' -            #debug('msv %s\n' % repr(msg)) +            #debug('msv %s' % repr(msg))              #SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning, msg)              debug('msvc_setup_env: No installed VCs')              return None          msvc_version = installed_vcs[0] -        debug('msvc_setup_env: using default installed MSVC version %s\n' % repr(msvc_version)) +        debug('msvc_setup_env: using default installed MSVC version %s' % repr(msvc_version))      return msvc_version @@ -654,12 +695,12 @@ def msvc_setup_env_once(env):          msvc_setup_env(env)          env["MSVC_SETUP_RUN"] = True -def msvc_find_valid_batch_script(env,version): -    debug('vc.py:msvc_find_valid_batch_script()') +def msvc_find_valid_batch_script(env, version): +    debug('msvc_find_valid_batch_script()')      # Find the host platform, target platform, and if present the requested      # target platform      platforms = get_host_target(env) -    debug("vc.py: msvs_find_valid_batch_script(): host_platform %s, target_platform %s req_target_platform:%s" % platforms) +    debug(" msvs_find_valid_batch_script(): host_platform %s, target_platform %s req_target_platform:%s" % platforms)      host_platform, target_platform, req_target_platform = platforms      try_target_archs = [target_platform] @@ -683,7 +724,7 @@ def msvc_find_valid_batch_script(env,version):          # Set to current arch.          env['TARGET_ARCH']=tp -        debug("vc.py:msvc_find_valid_batch_script() trying target_platform:%s"%tp) +        debug("msvc_find_valid_batch_script() trying target_platform:%s"%tp)          host_target = (host_platform, tp)          if not is_host_target_supported(host_target, version):              warn_msg = "host, target = %s not supported for MSVC version %s" % \ @@ -701,8 +742,8 @@ def msvc_find_valid_batch_script(env,version):          # Try to locate a batch file for this host/target platform combo          try: -            (vc_script,sdk_script) = find_batch_file(env,version,host_platform,tp) -            debug('vc.py:msvc_find_valid_batch_script() vc_script:%s sdk_script:%s'%(vc_script,sdk_script)) +            (vc_script, sdk_script) = find_batch_file(env, version, host_platform, tp) +            debug('msvc_find_valid_batch_script() vc_script:%s sdk_script:%s'%(vc_script,sdk_script))          except VisualCException as e:              msg = str(e)              debug('Caught exception while looking for batch file (%s)' % msg) @@ -714,29 +755,29 @@ def msvc_find_valid_batch_script(env,version):              continue          # Try to use the located batch file for this host/target platform combo -        debug('vc.py:msvc_find_valid_batch_script() use_script 2 %s, args:%s\n' % (repr(vc_script), arg)) +        debug('msvc_find_valid_batch_script() use_script 2 %s, args:%s' % (repr(vc_script), arg))          found = None          if vc_script:              try:                  d = script_env(vc_script, args=arg)                  found = vc_script              except BatchFileExecutionError as e: -                debug('vc.py:msvc_find_valid_batch_script() use_script 3: failed running VC script %s: %s: Error:%s'%(repr(vc_script),arg,e)) +                debug('msvc_find_valid_batch_script() use_script 3: failed running VC script %s: %s: Error:%s'%(repr(vc_script),arg,e))                  vc_script=None                  continue          if not vc_script and sdk_script: -            debug('vc.py:msvc_find_valid_batch_script() use_script 4: trying sdk script: %s'%(sdk_script)) +            debug('msvc_find_valid_batch_script() use_script 4: trying sdk script: %s'%(sdk_script))              try:                  d = script_env(sdk_script)                  found = sdk_script              except BatchFileExecutionError as e: -                debug('vc.py:msvc_find_valid_batch_script() use_script 5: failed running SDK script %s: Error:%s'%(repr(sdk_script),e)) +                debug('msvc_find_valid_batch_script() use_script 5: failed running SDK script %s: Error:%s'%(repr(sdk_script),e))                  continue          elif not vc_script and not sdk_script: -            debug('vc.py:msvc_find_valid_batch_script() use_script 6: Neither VC script nor SDK script found') +            debug('msvc_find_valid_batch_script() use_script 6: Neither VC script nor SDK script found')              continue -        debug("vc.py:msvc_find_valid_batch_script() Found a working script/target: %s/%s"%(repr(found),arg)) +        debug("msvc_find_valid_batch_script() Found a working script/target: %s/%s"%(repr(found),arg))          break # We've found a working target_platform, so stop looking      # If we cannot find a viable installed compiler, reset the TARGET_ARCH @@ -756,7 +797,7 @@ def msvc_setup_env(env):                     "compilers most likely not set correctly"          SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning, warn_msg)          return None -    debug('msvc_setup_env: using specified MSVC version %s\n' % repr(version)) +    debug('msvc_setup_env: using specified MSVC version %s' % repr(version))      # XXX: we set-up both MSVS version for backward      # compatibility with the msvs tool @@ -767,11 +808,11 @@ def msvc_setup_env(env):      use_script = env.get('MSVC_USE_SCRIPT', True)      if SCons.Util.is_String(use_script): -        debug('vc.py:msvc_setup_env() use_script 1 %s\n' % repr(use_script)) +        debug('msvc_setup_env() use_script 1 %s' % repr(use_script))          d = script_env(use_script)      elif use_script:          d = msvc_find_valid_batch_script(env,version) -        debug('vc.py:msvc_setup_env() use_script 2 %s\n' % d) +        debug('msvc_setup_env() use_script 2 %s' % d)          if not d:              return d      else: @@ -782,7 +823,7 @@ def msvc_setup_env(env):          return None      for k, v in d.items(): -        debug('vc.py:msvc_setup_env() env:%s -> %s'%(k,v)) +        debug('msvc_setup_env() env:%s -> %s'%(k,v))          env.PrependENVPath(k, v, delete_existing=True)      # final check to issue a warning if the compiler is not present diff --git a/engine/SCons/Tool/MSCommon/vs.py b/engine/SCons/Tool/MSCommon/vs.py index d719301..972c4f8 100644 --- a/engine/SCons/Tool/MSCommon/vs.py +++ b/engine/SCons/Tool/MSCommon/vs.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """Module to detect Visual Studio and/or Visual C/C++  """ @@ -465,14 +465,14 @@ def get_vs_by_version(msvs):      global InstalledVSMap      global SupportedVSMap -    debug('vs.py:get_vs_by_version()') +    debug('get_vs_by_version()')      if msvs not in SupportedVSMap:          msg = "Visual Studio version %s is not supported" % repr(msvs)          raise SCons.Errors.UserError(msg)      get_installed_visual_studios()      vs = InstalledVSMap.get(msvs)      debug('InstalledVSMap:%s'%InstalledVSMap) -    debug('vs.py:get_vs_by_version: found vs:%s'%vs) +    debug('get_vs_by_version: found vs:%s'%vs)      # Some check like this would let us provide a useful error message      # if they try to set a Visual Studio version that's not installed.      # However, we also want to be able to run tests (like the unit diff --git a/engine/SCons/Tool/PharLapCommon.py b/engine/SCons/Tool/PharLapCommon.py index d699b7e..09751d1 100644 --- a/engine/SCons/Tool/PharLapCommon.py +++ b/engine/SCons/Tool/PharLapCommon.py @@ -29,7 +29,7 @@ Phar Lap ETS tool chain.  Right now, this is linkloc and  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/PharLapCommon.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/PharLapCommon.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/__init__.py b/engine/SCons/Tool/__init__.py index ea64b78..a75693f 100644 --- a/engine/SCons/Tool/__init__.py +++ b/engine/SCons/Tool/__init__.py @@ -35,7 +35,7 @@ tool definition.  # 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/Tool/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import sys  import re @@ -99,7 +99,7 @@ for suffix in LaTeXSuffixes:      SourceFileScanner.add_scanner(suffix, LaTeXScanner)      SourceFileScanner.add_scanner(suffix, PDFLaTeXScanner) -# Tool aliases are needed for those tools whos module names also +# Tool aliases are needed for those tools whose module names also  # occur in the python standard library. This causes module shadowing and  # can break using python library functions under python3  TOOL_ALIASES = { diff --git a/engine/SCons/Tool/aixc++.py b/engine/SCons/Tool/aixc++.py index 90a3e01..4a78eda 100644 --- a/engine/SCons/Tool/aixc++.py +++ b/engine/SCons/Tool/aixc++.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/aixc++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/aixc++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version  from SCons.Tool.aixcxx import * diff --git a/engine/SCons/Tool/aixcc.py b/engine/SCons/Tool/aixcc.py index 2cc35bc..e7bc1ca 100644 --- a/engine/SCons/Tool/aixcc.py +++ b/engine/SCons/Tool/aixcc.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/aixcc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/aixcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/aixcxx.py b/engine/SCons/Tool/aixcxx.py index 7e7ff3a..f4ee5fe 100644 --- a/engine/SCons/Tool/aixcxx.py +++ b/engine/SCons/Tool/aixcxx.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/aixcxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/aixcxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/aixf77.py b/engine/SCons/Tool/aixf77.py index c7129e5..908e8ad 100644 --- a/engine/SCons/Tool/aixf77.py +++ b/engine/SCons/Tool/aixf77.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/aixf77.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/aixf77.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/aixlink.py b/engine/SCons/Tool/aixlink.py index a82f570..67d65e8 100644 --- a/engine/SCons/Tool/aixlink.py +++ b/engine/SCons/Tool/aixlink.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/aixlink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/aixlink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/applelink.py b/engine/SCons/Tool/applelink.py index 2c165ee..f432d61 100644 --- a/engine/SCons/Tool/applelink.py +++ b/engine/SCons/Tool/applelink.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/applelink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/applelink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/ar.py b/engine/SCons/Tool/ar.py index e0e89a7..3d8cc8a 100644 --- a/engine/SCons/Tool/ar.py +++ b/engine/SCons/Tool/ar.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ar.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ar.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/as.py b/engine/SCons/Tool/as.py index 37186d7..3986a44 100644 --- a/engine/SCons/Tool/as.py +++ b/engine/SCons/Tool/as.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/as.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/as.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/bcc32.py b/engine/SCons/Tool/bcc32.py index bb74d4d..7e0b47f 100644 --- a/engine/SCons/Tool/bcc32.py +++ b/engine/SCons/Tool/bcc32.py @@ -27,7 +27,7 @@ XXX  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/bcc32.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/bcc32.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/c++.py b/engine/SCons/Tool/c++.py index 9cd420b..00aee5d 100644 --- a/engine/SCons/Tool/c++.py +++ b/engine/SCons/Tool/c++.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/c++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/c++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version diff --git a/engine/SCons/Tool/cc.py b/engine/SCons/Tool/cc.py index 12e2b68..ffcb6e8 100644 --- a/engine/SCons/Tool/cc.py +++ b/engine/SCons/Tool/cc.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/cc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/cc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool  import SCons.Defaults diff --git a/engine/SCons/Tool/clang.py b/engine/SCons/Tool/clang.py index 8d913d1..35347b4 100644 --- a/engine/SCons/Tool/clang.py +++ b/engine/SCons/Tool/clang.py @@ -33,7 +33,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -# __revision__ = "src/engine/SCons/Tool/clang.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +# __revision__ = "src/engine/SCons/Tool/clang.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  # Based on SCons/Tool/gcc.py by Paweł Tomulik 2014 as a separate tool.  # Brought into the SCons mainline by Russel Winder 2017. diff --git a/engine/SCons/Tool/clangxx.py b/engine/SCons/Tool/clangxx.py index 8afda08..9292c21 100644 --- a/engine/SCons/Tool/clangxx.py +++ b/engine/SCons/Tool/clangxx.py @@ -33,7 +33,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -# __revision__ = "src/engine/SCons/Tool/clangxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +# __revision__ = "src/engine/SCons/Tool/clangxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  # Based on SCons/Tool/g++.py by Paweł Tomulik 2014 as a separate tool.  # Brought into the SCons mainline by Russel Winder 2017. diff --git a/engine/SCons/Tool/cvf.py b/engine/SCons/Tool/cvf.py index 22ec02f..60d5a3d 100644 --- a/engine/SCons/Tool/cvf.py +++ b/engine/SCons/Tool/cvf.py @@ -27,7 +27,7 @@ Tool-specific initialization for the Compaq Visual Fortran compiler.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/cvf.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/cvf.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import fortran diff --git a/engine/SCons/Tool/cxx.py b/engine/SCons/Tool/cxx.py index 7e34850..aced177 100644 --- a/engine/SCons/Tool/cxx.py +++ b/engine/SCons/Tool/cxx.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/cxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/cxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/default.py b/engine/SCons/Tool/default.py index a401d25..355538f 100644 --- a/engine/SCons/Tool/default.py +++ b/engine/SCons/Tool/default.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/default.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/default.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool diff --git a/engine/SCons/Tool/dmd.py b/engine/SCons/Tool/dmd.py index e87d791..74c8673 100644 --- a/engine/SCons/Tool/dmd.py +++ b/engine/SCons/Tool/dmd.py @@ -53,7 +53,7 @@ Lib tool variables:  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/dmd.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/dmd.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import subprocess diff --git a/engine/SCons/Tool/dvi.py b/engine/SCons/Tool/dvi.py index 2152817..1a7f7af 100644 --- a/engine/SCons/Tool/dvi.py +++ b/engine/SCons/Tool/dvi.py @@ -27,7 +27,7 @@ Common DVI Builder definition for various other Tool modules that use it.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/dvi.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/dvi.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Builder  import SCons.Tool diff --git a/engine/SCons/Tool/dvipdf.py b/engine/SCons/Tool/dvipdf.py index 2b66658..6012e5b 100644 --- a/engine/SCons/Tool/dvipdf.py +++ b/engine/SCons/Tool/dvipdf.py @@ -30,7 +30,7 @@ selection method.  # 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/Tool/dvipdf.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/dvipdf.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Defaults diff --git a/engine/SCons/Tool/dvips.py b/engine/SCons/Tool/dvips.py index ccc882c..9fce42c 100644 --- a/engine/SCons/Tool/dvips.py +++ b/engine/SCons/Tool/dvips.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/dvips.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/dvips.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Builder diff --git a/engine/SCons/Tool/f03.py b/engine/SCons/Tool/f03.py index 0a30381..77a37b9 100644 --- a/engine/SCons/Tool/f03.py +++ b/engine/SCons/Tool/f03.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/f03.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/f03.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/f08.py b/engine/SCons/Tool/f08.py index 1d2b84d..e7318b9 100644 --- a/engine/SCons/Tool/f08.py +++ b/engine/SCons/Tool/f08.py @@ -33,7 +33,7 @@ from __future__ import absolute_import  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/f08.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/f08.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/f77.py b/engine/SCons/Tool/f77.py index c52904e..0777822 100644 --- a/engine/SCons/Tool/f77.py +++ b/engine/SCons/Tool/f77.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/f77.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/f77.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Scanner.Fortran diff --git a/engine/SCons/Tool/f90.py b/engine/SCons/Tool/f90.py index 1095c1c..6a370bd 100644 --- a/engine/SCons/Tool/f90.py +++ b/engine/SCons/Tool/f90.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/f90.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/f90.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Scanner.Fortran diff --git a/engine/SCons/Tool/f95.py b/engine/SCons/Tool/f95.py index 44e9e39..fca7d62 100644 --- a/engine/SCons/Tool/f95.py +++ b/engine/SCons/Tool/f95.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/f95.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/f95.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/filesystem.py b/engine/SCons/Tool/filesystem.py index b004782..ea16abf 100644 --- a/engine/SCons/Tool/filesystem.py +++ b/engine/SCons/Tool/filesystem.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/filesystem.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/filesystem.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons  from SCons.Tool.install import copyFunc diff --git a/engine/SCons/Tool/fortran.py b/engine/SCons/Tool/fortran.py index 2e84e49..7b332c9 100644 --- a/engine/SCons/Tool/fortran.py +++ b/engine/SCons/Tool/fortran.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/fortran.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/fortran.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import re diff --git a/engine/SCons/Tool/g++.py b/engine/SCons/Tool/g++.py index ecaf0ab..eace13c 100644 --- a/engine/SCons/Tool/g++.py +++ b/engine/SCons/Tool/g++.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/g++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/g++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version diff --git a/engine/SCons/Tool/g77.py b/engine/SCons/Tool/g77.py index 6d7d4ed..f3f935d 100644 --- a/engine/SCons/Tool/g77.py +++ b/engine/SCons/Tool/g77.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/g77.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/g77.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util  from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env diff --git a/engine/SCons/Tool/gas.py b/engine/SCons/Tool/gas.py index add6f7c..9b60201 100644 --- a/engine/SCons/Tool/gas.py +++ b/engine/SCons/Tool/gas.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gas.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gas.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  try:      as_module = __import__('as', globals(), locals(), []) diff --git a/engine/SCons/Tool/gcc.py b/engine/SCons/Tool/gcc.py index 4f70be5..65b9f57 100644 --- a/engine/SCons/Tool/gcc.py +++ b/engine/SCons/Tool/gcc.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gcc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import cc  import os diff --git a/engine/SCons/Tool/gdc.py b/engine/SCons/Tool/gdc.py index ebb9b06..4c392e8 100644 --- a/engine/SCons/Tool/gdc.py +++ b/engine/SCons/Tool/gdc.py @@ -48,7 +48,7 @@ Lib tool variables:  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gdc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gdc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Defaults diff --git a/engine/SCons/Tool/gettext_tool.py b/engine/SCons/Tool/gettext_tool.py index 9f20a6f..5891e40 100644 --- a/engine/SCons/Tool/gettext_tool.py +++ b/engine/SCons/Tool/gettext_tool.py @@ -23,7 +23,7 @@  # 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/Tool/gettext_tool.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gettext_tool.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #############################################################################  def generate(env,**kw): diff --git a/engine/SCons/Tool/gfortran.py b/engine/SCons/Tool/gfortran.py index ca143c5..986ebc6 100644 --- a/engine/SCons/Tool/gfortran.py +++ b/engine/SCons/Tool/gfortran.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gfortran.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gfortran.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/gnulink.py b/engine/SCons/Tool/gnulink.py index 2ed5d34..0715ffc 100644 --- a/engine/SCons/Tool/gnulink.py +++ b/engine/SCons/Tool/gnulink.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gnulink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gnulink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util  import SCons.Tool diff --git a/engine/SCons/Tool/gs.py b/engine/SCons/Tool/gs.py index ca85585..3e9543f 100644 --- a/engine/SCons/Tool/gs.py +++ b/engine/SCons/Tool/gs.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gs.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gs.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Builder diff --git a/engine/SCons/Tool/gxx.py b/engine/SCons/Tool/gxx.py index b9c35f7..2eb678d 100644 --- a/engine/SCons/Tool/gxx.py +++ b/engine/SCons/Tool/gxx.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/gxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/gxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import re diff --git a/engine/SCons/Tool/hpc++.py b/engine/SCons/Tool/hpc++.py index 6da62ae..ee94e22 100644 --- a/engine/SCons/Tool/hpc++.py +++ b/engine/SCons/Tool/hpc++.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/hpc++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/hpc++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version diff --git a/engine/SCons/Tool/hpcc.py b/engine/SCons/Tool/hpcc.py index 7e2d748..f118cf3 100644 --- a/engine/SCons/Tool/hpcc.py +++ b/engine/SCons/Tool/hpcc.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/hpcc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/hpcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/hpcxx.py b/engine/SCons/Tool/hpcxx.py index ccda329..e4dcb97 100644 --- a/engine/SCons/Tool/hpcxx.py +++ b/engine/SCons/Tool/hpcxx.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/hpcxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/hpcxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/hplink.py b/engine/SCons/Tool/hplink.py index be83074..9f90071 100644 --- a/engine/SCons/Tool/hplink.py +++ b/engine/SCons/Tool/hplink.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/hplink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/hplink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/icc.py b/engine/SCons/Tool/icc.py index 97f30bd..877a212 100644 --- a/engine/SCons/Tool/icc.py +++ b/engine/SCons/Tool/icc.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/icc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/icc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import cc diff --git a/engine/SCons/Tool/icl.py b/engine/SCons/Tool/icl.py index ad9305a..be67bdc 100644 --- a/engine/SCons/Tool/icl.py +++ b/engine/SCons/Tool/icl.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/icl.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/icl.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool.intelc diff --git a/engine/SCons/Tool/ifl.py b/engine/SCons/Tool/ifl.py index 1e98df4..2139b9f 100644 --- a/engine/SCons/Tool/ifl.py +++ b/engine/SCons/Tool/ifl.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ifl.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ifl.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  from SCons.Scanner.Fortran import FortranScan diff --git a/engine/SCons/Tool/ifort.py b/engine/SCons/Tool/ifort.py index d1886ce..a248b3e 100644 --- a/engine/SCons/Tool/ifort.py +++ b/engine/SCons/Tool/ifort.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ifort.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ifort.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  from SCons.Scanner.Fortran import FortranScan diff --git a/engine/SCons/Tool/ilink.py b/engine/SCons/Tool/ilink.py index 4e848dc..289235c 100644 --- a/engine/SCons/Tool/ilink.py +++ b/engine/SCons/Tool/ilink.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ilink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ilink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/ilink32.py b/engine/SCons/Tool/ilink32.py index ecb6e7b..33df790 100644 --- a/engine/SCons/Tool/ilink32.py +++ b/engine/SCons/Tool/ilink32.py @@ -27,7 +27,7 @@ XXX  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ilink32.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ilink32.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool  import SCons.Tool.bcc32 diff --git a/engine/SCons/Tool/install.py b/engine/SCons/Tool/install.py index 8f80bc2..f998baa 100644 --- a/engine/SCons/Tool/install.py +++ b/engine/SCons/Tool/install.py @@ -31,7 +31,7 @@ selection method.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/install.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/install.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import re diff --git a/engine/SCons/Tool/intelc.py b/engine/SCons/Tool/intelc.py index ee8b4f4..c45c71a 100644 --- a/engine/SCons/Tool/intelc.py +++ b/engine/SCons/Tool/intelc.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  from __future__ import division, print_function -__revision__ = "src/engine/SCons/Tool/intelc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/intelc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import math, sys, os.path, glob, string, re @@ -387,7 +387,7 @@ def get_intel_compiler_top(version, abi):  def generate(env, version=None, abi=None, topdir=None, verbose=0): -    """Add Builders and construction variables for Intel C/C++ compiler +    r"""Add Builders and construction variables for Intel C/C++ compiler      to an Environment.      args:        version: (string) compiler version to use, like "80" @@ -551,7 +551,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):          # Look for license file dir          # in system environment, registry, and default location.          envlicdir = os.environ.get("INTEL_LICENSE_FILE", '') -        K = ('SOFTWARE\Intel\Licenses') +        K = r'SOFTWARE\Intel\Licenses'          try:              k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)              reglicdir = SCons.Util.RegQueryValueEx(k, "w_cpp")[0] diff --git a/engine/SCons/Tool/ipkg.py b/engine/SCons/Tool/ipkg.py index 60096af..e1fad35 100644 --- a/engine/SCons/Tool/ipkg.py +++ b/engine/SCons/Tool/ipkg.py @@ -33,7 +33,7 @@ packages fake_root.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ipkg.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ipkg.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os diff --git a/engine/SCons/Tool/jar.py b/engine/SCons/Tool/jar.py index 212a105..f2a328b 100644 --- a/engine/SCons/Tool/jar.py +++ b/engine/SCons/Tool/jar.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/jar.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/jar.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import SCons.Subst diff --git a/engine/SCons/Tool/javac.py b/engine/SCons/Tool/javac.py index 849ac09..aeb52ce 100644 --- a/engine/SCons/Tool/javac.py +++ b/engine/SCons/Tool/javac.py @@ -30,7 +30,7 @@ selection method.  # 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/Tool/javac.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/javac.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/javah.py b/engine/SCons/Tool/javah.py index 8ec3cf8..b41c742 100644 --- a/engine/SCons/Tool/javah.py +++ b/engine/SCons/Tool/javah.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/javah.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/javah.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/latex.py b/engine/SCons/Tool/latex.py index 242aa62..6cfd93a 100644 --- a/engine/SCons/Tool/latex.py +++ b/engine/SCons/Tool/latex.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/latex.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/latex.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Defaults diff --git a/engine/SCons/Tool/ldc.py b/engine/SCons/Tool/ldc.py index 6f6a899..639dd48 100644 --- a/engine/SCons/Tool/ldc.py +++ b/engine/SCons/Tool/ldc.py @@ -48,7 +48,7 @@ Lib tool variables:  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/ldc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/ldc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import subprocess diff --git a/engine/SCons/Tool/lex.py b/engine/SCons/Tool/lex.py index 155e2d9..db1ca6d 100644 --- a/engine/SCons/Tool/lex.py +++ b/engine/SCons/Tool/lex.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/lex.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/lex.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import sys diff --git a/engine/SCons/Tool/link.py b/engine/SCons/Tool/link.py index 2347c94..c712732 100644 --- a/engine/SCons/Tool/link.py +++ b/engine/SCons/Tool/link.py @@ -32,7 +32,7 @@ selection method.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/link.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/link.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import sys  import re diff --git a/engine/SCons/Tool/linkloc.py b/engine/SCons/Tool/linkloc.py index e3b16fc..508b09a 100644 --- a/engine/SCons/Tool/linkloc.py +++ b/engine/SCons/Tool/linkloc.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/linkloc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/linkloc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import re diff --git a/engine/SCons/Tool/m4.py b/engine/SCons/Tool/m4.py index 0c345f3..b71f6be 100644 --- a/engine/SCons/Tool/m4.py +++ b/engine/SCons/Tool/m4.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/m4.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/m4.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Builder diff --git a/engine/SCons/Tool/masm.py b/engine/SCons/Tool/masm.py index 26e2e0a..0897714 100644 --- a/engine/SCons/Tool/masm.py +++ b/engine/SCons/Tool/masm.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/masm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/masm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/midl.py b/engine/SCons/Tool/midl.py index b2120c6..5ec5974 100644 --- a/engine/SCons/Tool/midl.py +++ b/engine/SCons/Tool/midl.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/midl.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/midl.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Builder diff --git a/engine/SCons/Tool/mingw.py b/engine/SCons/Tool/mingw.py index 4d6533b..3152bf2 100644 --- a/engine/SCons/Tool/mingw.py +++ b/engine/SCons/Tool/mingw.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/mingw.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mingw.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/msgfmt.py b/engine/SCons/Tool/msgfmt.py index a66af36..1ee45e7 100644 --- a/engine/SCons/Tool/msgfmt.py +++ b/engine/SCons/Tool/msgfmt.py @@ -21,7 +21,7 @@  # 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/Tool/msgfmt.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/msgfmt.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Builder import BuilderBase  ############################################################################# diff --git a/engine/SCons/Tool/msginit.py b/engine/SCons/Tool/msginit.py index 96c2732..8ce9f02 100644 --- a/engine/SCons/Tool/msginit.py +++ b/engine/SCons/Tool/msginit.py @@ -24,7 +24,7 @@ Tool specific initialization of msginit tool.  # 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/Tool/msginit.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/msginit.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Warnings  import SCons.Builder diff --git a/engine/SCons/Tool/msgmerge.py b/engine/SCons/Tool/msgmerge.py index 42cb18a..748041d 100644 --- a/engine/SCons/Tool/msgmerge.py +++ b/engine/SCons/Tool/msgmerge.py @@ -24,7 +24,7 @@ Tool specific initialization for `msgmerge` tool.  # 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/Tool/msgmerge.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/msgmerge.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #############################################################################  def _update_or_init_po_files(target, source, env): diff --git a/engine/SCons/Tool/mslib.py b/engine/SCons/Tool/mslib.py index 01ea3ff..88b5b1e 100644 --- a/engine/SCons/Tool/mslib.py +++ b/engine/SCons/Tool/mslib.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/mslib.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mslib.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os diff --git a/engine/SCons/Tool/mslink.py b/engine/SCons/Tool/mslink.py index 43bcb3d..d995d3b 100644 --- a/engine/SCons/Tool/mslink.py +++ b/engine/SCons/Tool/mslink.py @@ -32,7 +32,7 @@ selection method.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/mslink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mslink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/mssdk.py b/engine/SCons/Tool/mssdk.py index 8dfdbeb..55cb54a 100644 --- a/engine/SCons/Tool/mssdk.py +++ b/engine/SCons/Tool/mssdk.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/mssdk.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mssdk.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  """engine.SCons.Tool.mssdk diff --git a/engine/SCons/Tool/msvc.py b/engine/SCons/Tool/msvc.py index d94a037..0013015 100644 --- a/engine/SCons/Tool/msvc.py +++ b/engine/SCons/Tool/msvc.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/msvc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/msvc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import os diff --git a/engine/SCons/Tool/msvs.py b/engine/SCons/Tool/msvs.py index 7d60097..4a4b390 100644 --- a/engine/SCons/Tool/msvs.py +++ b/engine/SCons/Tool/msvs.py @@ -32,7 +32,7 @@ selection method.  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/msvs.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/msvs.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.compat @@ -652,7 +652,7 @@ class _GenerateV6DSP(_DSPGenerator):              for base in ("BASE ",""):                  self.file.write('# PROP %sUse_MFC 0\n'                                  '# PROP %sUse_Debug_Libraries ' % (base, base)) -                if kind.lower().find('debug') < 0: +                if 'debug' not in kind.lower():                      self.file.write('0\n')                  else:                      self.file.write('1\n') @@ -731,7 +731,7 @@ class _GenerateV6DSP(_DSPGenerator):          line = dspfile.readline()          # skip until marker          while line: -            if line.find("# End Project") > -1: +            if "# End Project" in line:                  break              line = dspfile.readline() @@ -1049,7 +1049,7 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):          line = dspfile.readline()          # skip until marker          while line: -            if line.find('<!-- SCons Data:') > -1: +            if '<!-- SCons Data:' in line:                  break              line = dspfile.readline() diff --git a/engine/SCons/Tool/mwcc.py b/engine/SCons/Tool/mwcc.py index 1820ddb..341a3ef 100644 --- a/engine/SCons/Tool/mwcc.py +++ b/engine/SCons/Tool/mwcc.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/mwcc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mwcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/mwld.py b/engine/SCons/Tool/mwld.py index 3792b16..5af02a6 100644 --- a/engine/SCons/Tool/mwld.py +++ b/engine/SCons/Tool/mwld.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/mwld.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/mwld.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool diff --git a/engine/SCons/Tool/nasm.py b/engine/SCons/Tool/nasm.py index bc1e446..f08930e 100644 --- a/engine/SCons/Tool/nasm.py +++ b/engine/SCons/Tool/nasm.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/nasm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/nasm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/packaging/__init__.py b/engine/SCons/Tool/packaging/__init__.py index 02f1acd..4b947f9 100644 --- a/engine/SCons/Tool/packaging/__init__.py +++ b/engine/SCons/Tool/packaging/__init__.py @@ -25,7 +25,7 @@ SCons Packaging Tool.  # 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/Tool/packaging/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Environment diff --git a/engine/SCons/Tool/packaging/ipk.py b/engine/SCons/Tool/packaging/ipk.py index 27657eb..8b4d79c 100644 --- a/engine/SCons/Tool/packaging/ipk.py +++ b/engine/SCons/Tool/packaging/ipk.py @@ -24,7 +24,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/ipk.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/ipk.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os diff --git a/engine/SCons/Tool/packaging/msi.py b/engine/SCons/Tool/packaging/msi.py index 1038a95..1d47268 100644 --- a/engine/SCons/Tool/packaging/msi.py +++ b/engine/SCons/Tool/packaging/msi.py @@ -25,7 +25,7 @@ The msi packager.  # 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/Tool/packaging/msi.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/msi.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import SCons @@ -224,7 +224,7 @@ def build_wxsfile(target, source, env):  # setup function  #  def create_default_directory_layout(root, NAME, VERSION, VENDOR, filename_set): -    """ Create the wix default target directory layout and return the innermost +    r""" Create the wix default target directory layout and return the innermost      directory.      We assume that the XML tree delivered in the root argument already contains diff --git a/engine/SCons/Tool/packaging/rpm.py b/engine/SCons/Tool/packaging/rpm.py index aa15061..1554d09 100644 --- a/engine/SCons/Tool/packaging/rpm.py +++ b/engine/SCons/Tool/packaging/rpm.py @@ -25,7 +25,7 @@ The rpm packager.  # 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/Tool/packaging/rpm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/rpm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os diff --git a/engine/SCons/Tool/packaging/src_tarbz2.py b/engine/SCons/Tool/packaging/src_tarbz2.py index 2089142..1889ec9 100644 --- a/engine/SCons/Tool/packaging/src_tarbz2.py +++ b/engine/SCons/Tool/packaging/src_tarbz2.py @@ -26,7 +26,7 @@ The tarbz2 SRC packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/src_tarbz2.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/src_tarbz2.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import putintopackageroot diff --git a/engine/SCons/Tool/packaging/src_targz.py b/engine/SCons/Tool/packaging/src_targz.py index f7be89c..0d3a3db 100644 --- a/engine/SCons/Tool/packaging/src_targz.py +++ b/engine/SCons/Tool/packaging/src_targz.py @@ -26,7 +26,7 @@ The targz SRC packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/src_targz.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/src_targz.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import putintopackageroot diff --git a/engine/SCons/Tool/packaging/src_tarxz.py b/engine/SCons/Tool/packaging/src_tarxz.py index 9093d27..3042cac 100644 --- a/engine/SCons/Tool/packaging/src_tarxz.py +++ b/engine/SCons/Tool/packaging/src_tarxz.py @@ -26,7 +26,7 @@ The tarxz SRC packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/src_tarxz.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/src_tarxz.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import putintopackageroot diff --git a/engine/SCons/Tool/packaging/src_zip.py b/engine/SCons/Tool/packaging/src_zip.py index 51859ec..207fb1c 100644 --- a/engine/SCons/Tool/packaging/src_zip.py +++ b/engine/SCons/Tool/packaging/src_zip.py @@ -26,7 +26,7 @@ The zip SRC packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/src_zip.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/src_zip.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import putintopackageroot diff --git a/engine/SCons/Tool/packaging/tarbz2.py b/engine/SCons/Tool/packaging/tarbz2.py index 6adae3b..f34813b 100644 --- a/engine/SCons/Tool/packaging/tarbz2.py +++ b/engine/SCons/Tool/packaging/tarbz2.py @@ -26,7 +26,7 @@ The tarbz2 packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/tarbz2.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/tarbz2.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot diff --git a/engine/SCons/Tool/packaging/targz.py b/engine/SCons/Tool/packaging/targz.py index 402063f..8c694af 100644 --- a/engine/SCons/Tool/packaging/targz.py +++ b/engine/SCons/Tool/packaging/targz.py @@ -26,7 +26,7 @@ The targz packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/targz.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/targz.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot diff --git a/engine/SCons/Tool/packaging/tarxz.py b/engine/SCons/Tool/packaging/tarxz.py index 0e3e44d..dc52aa9 100644 --- a/engine/SCons/Tool/packaging/tarxz.py +++ b/engine/SCons/Tool/packaging/tarxz.py @@ -26,7 +26,7 @@ The tarxz packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/tarxz.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/tarxz.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot diff --git a/engine/SCons/Tool/packaging/zip.py b/engine/SCons/Tool/packaging/zip.py index 04bb246..c7da7e9 100644 --- a/engine/SCons/Tool/packaging/zip.py +++ b/engine/SCons/Tool/packaging/zip.py @@ -26,7 +26,7 @@ The zip SRC packager.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/packaging/zip.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/packaging/zip.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Tool.packaging import stripinstallbuilder, putintopackageroot diff --git a/engine/SCons/Tool/pdf.py b/engine/SCons/Tool/pdf.py index c2b8d72..6d6310f 100644 --- a/engine/SCons/Tool/pdf.py +++ b/engine/SCons/Tool/pdf.py @@ -28,7 +28,7 @@ Add an explicit action to run epstopdf to convert .eps files to .pdf  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/pdf.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/pdf.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Builder  import SCons.Tool diff --git a/engine/SCons/Tool/pdflatex.py b/engine/SCons/Tool/pdflatex.py index 92edf6a..7550365 100644 --- a/engine/SCons/Tool/pdflatex.py +++ b/engine/SCons/Tool/pdflatex.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/pdflatex.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/pdflatex.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Util diff --git a/engine/SCons/Tool/pdftex.py b/engine/SCons/Tool/pdftex.py index 3a4c8e1..b6595c1 100644 --- a/engine/SCons/Tool/pdftex.py +++ b/engine/SCons/Tool/pdftex.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/pdftex.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/pdftex.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import SCons.Action diff --git a/engine/SCons/Tool/qt.py b/engine/SCons/Tool/qt.py index 0829224..351d487 100644 --- a/engine/SCons/Tool/qt.py +++ b/engine/SCons/Tool/qt.py @@ -33,7 +33,7 @@ selection method.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/qt.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/qt.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import re diff --git a/engine/SCons/Tool/rmic.py b/engine/SCons/Tool/rmic.py index ddf12e2..9ff1674 100644 --- a/engine/SCons/Tool/rmic.py +++ b/engine/SCons/Tool/rmic.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/rmic.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/rmic.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Tool/rpcgen.py b/engine/SCons/Tool/rpcgen.py index f1eebea..1fb22f1 100644 --- a/engine/SCons/Tool/rpcgen.py +++ b/engine/SCons/Tool/rpcgen.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/rpcgen.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/rpcgen.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from SCons.Builder import Builder  import SCons.Util diff --git a/engine/SCons/Tool/rpm.py b/engine/SCons/Tool/rpm.py index 7de20cc..39e7b59 100644 --- a/engine/SCons/Tool/rpm.py +++ b/engine/SCons/Tool/rpm.py @@ -33,7 +33,7 @@ tar.gz consisting of the source file and a specfile.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/rpm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/rpm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import re diff --git a/engine/SCons/Tool/rpmutils.py b/engine/SCons/Tool/rpmutils.py index bacfe50..4d8b9be 100644 --- a/engine/SCons/Tool/rpmutils.py +++ b/engine/SCons/Tool/rpmutils.py @@ -36,7 +36,7 @@ exact syntax.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/rpmutils.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/rpmutils.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import platform diff --git a/engine/SCons/Tool/sgiar.py b/engine/SCons/Tool/sgiar.py index a2f86cb..c249815 100644 --- a/engine/SCons/Tool/sgiar.py +++ b/engine/SCons/Tool/sgiar.py @@ -33,7 +33,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sgiar.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sgiar.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/sgic++.py b/engine/SCons/Tool/sgic++.py index 9d7da76..0cb7a4a 100644 --- a/engine/SCons/Tool/sgic++.py +++ b/engine/SCons/Tool/sgic++.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sgic++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sgic++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version  from SCons.Tool.sgicxx import * diff --git a/engine/SCons/Tool/sgicc.py b/engine/SCons/Tool/sgicc.py index df4cf2c..b602be8 100644 --- a/engine/SCons/Tool/sgicc.py +++ b/engine/SCons/Tool/sgicc.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sgicc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sgicc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  from . import cc diff --git a/engine/SCons/Tool/sgicxx.py b/engine/SCons/Tool/sgicxx.py index 3270faa..8fe0441 100644 --- a/engine/SCons/Tool/sgicxx.py +++ b/engine/SCons/Tool/sgicxx.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sgicxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sgicxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/sgilink.py b/engine/SCons/Tool/sgilink.py index 402c28b..d5d6556 100644 --- a/engine/SCons/Tool/sgilink.py +++ b/engine/SCons/Tool/sgilink.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sgilink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sgilink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/sunar.py b/engine/SCons/Tool/sunar.py index 2fab888..af3d685 100644 --- a/engine/SCons/Tool/sunar.py +++ b/engine/SCons/Tool/sunar.py @@ -32,7 +32,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunar.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunar.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Defaults  import SCons.Tool diff --git a/engine/SCons/Tool/sunc++.py b/engine/SCons/Tool/sunc++.py index d33fcdf..5f09d94 100644 --- a/engine/SCons/Tool/sunc++.py +++ b/engine/SCons/Tool/sunc++.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunc++.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunc++.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  #forward proxy to the preffered cxx version diff --git a/engine/SCons/Tool/suncc.py b/engine/SCons/Tool/suncc.py index bc6bc9a..f40b6d3 100644 --- a/engine/SCons/Tool/suncc.py +++ b/engine/SCons/Tool/suncc.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/suncc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/suncc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/suncxx.py b/engine/SCons/Tool/suncxx.py index b0e343b..0c70b68 100644 --- a/engine/SCons/Tool/suncxx.py +++ b/engine/SCons/Tool/suncxx.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/suncxx.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/suncxx.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons @@ -39,12 +39,14 @@ import os  import re  import subprocess +from SCons.Util import PY3  import SCons.Tool.cxx  cplusplus = SCons.Tool.cxx -#cplusplus = __import__('c++', globals(), locals(), []) +# cplusplus = __import__('c++', globals(), locals(), [])  package_info = {} +  def get_package_info(package_name, pkginfo, pkgchk):      try:          return package_info[package_name] @@ -52,7 +54,7 @@ def get_package_info(package_name, pkginfo, pkgchk):          version = None          pathname = None          try: -            from subprocess import DEVNULL # py3k +            from subprocess import DEVNULL  # py3k          except ImportError:              DEVNULL = open(os.devnull, 'wb') @@ -68,13 +70,18 @@ def get_package_info(package_name, pkginfo, pkgchk):                  pathname = os.path.dirname(sadm_match.group(1))          try: +            popen_args = {'stdout': subprocess.PIPE, +                          'stderr': DEVNULL} +            if PY3: +                popen_args['universal_newlines'] = True              p = subprocess.Popen([pkginfo, '-l', package_name], -                                 stdout=subprocess.PIPE, -                                 stderr=DEVNULL) +                                 **popen_args)          except EnvironmentError:              pass          else:              pkginfo_contents = p.communicate()[0] +            if not PY3: +                pkginfo_contents.decode()              version_re = re.compile(r'^ *VERSION:\s*(.*)$', re.M)              version_match = version_re.search(pkginfo_contents)              if version_match: @@ -82,13 +89,18 @@ def get_package_info(package_name, pkginfo, pkgchk):          if pathname is None:              try: +                popen_args = {'stdout': subprocess.PIPE, +                              'stderr': DEVNULL} +                if PY3: +                    popen_args['universal_newlines'] = True                  p = subprocess.Popen([pkgchk, '-l', package_name], -                                     stdout=subprocess.PIPE, -                                     stderr=DEVNULL) +                                     **popen_args)              except EnvironmentError:                  pass              else:                  pkgchk_contents = p.communicate()[0] +                if not PY3: +                    pkgchk_contents.decode()                  pathname_re = re.compile(r'^Pathname:\s*(.*/bin/CC)$', re.M)                  pathname_match = pathname_re.search(pkgchk_contents)                  if pathname_match: @@ -97,7 +109,8 @@ def get_package_info(package_name, pkginfo, pkgchk):          package_info[package_name] = (pathname, version)          return package_info[package_name] -# use the package installer tool lslpp to figure out where cppc and what + +# use the package installer tool "pkg" to figure out where cppc and what  # version of it is installed  def get_cppc(env):      cxx = env.subst('$CXX') @@ -119,6 +132,7 @@ def get_cppc(env):      return (cppcPath, 'CC', 'CC', cppcVersion) +  def generate(env):      """Add Builders and construction variables for SunPRO C++."""      path, cxx, shcxx, version = get_cppc(env) @@ -131,10 +145,11 @@ def generate(env):      env['CXX'] = cxx      env['SHCXX'] = shcxx      env['CXXVERSION'] = version -    env['SHCXXFLAGS']   = SCons.Util.CLVar('$CXXFLAGS -KPIC') -    env['SHOBJPREFIX']  = 'so_' -    env['SHOBJSUFFIX']  = '.o' -     +    env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS -KPIC') +    env['SHOBJPREFIX'] = 'so_' +    env['SHOBJSUFFIX'] = '.o' + +  def exists(env):      path, cxx, shcxx, version = get_cppc(env)      if path and cxx: diff --git a/engine/SCons/Tool/sunf77.py b/engine/SCons/Tool/sunf77.py index 0bbb52f..2ea5447 100644 --- a/engine/SCons/Tool/sunf77.py +++ b/engine/SCons/Tool/sunf77.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunf77.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunf77.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/sunf90.py b/engine/SCons/Tool/sunf90.py index 5c34a08..d69f8d1 100644 --- a/engine/SCons/Tool/sunf90.py +++ b/engine/SCons/Tool/sunf90.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunf90.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunf90.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/sunf95.py b/engine/SCons/Tool/sunf95.py index 71a6840..f03c43f 100644 --- a/engine/SCons/Tool/sunf95.py +++ b/engine/SCons/Tool/sunf95.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunf95.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunf95.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Util diff --git a/engine/SCons/Tool/sunlink.py b/engine/SCons/Tool/sunlink.py index 39a921a..25ab4d4 100644 --- a/engine/SCons/Tool/sunlink.py +++ b/engine/SCons/Tool/sunlink.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/sunlink.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/sunlink.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import os.path diff --git a/engine/SCons/Tool/swig.py b/engine/SCons/Tool/swig.py index a6ab3de..d724500 100644 --- a/engine/SCons/Tool/swig.py +++ b/engine/SCons/Tool/swig.py @@ -32,7 +32,7 @@ from __future__ import print_function  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/swig.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/swig.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import sys @@ -80,7 +80,7 @@ def _find_modules(src):      for m in matches:          mnames.append(m[2]) -        directors = directors or m[0].find('directors') >= 0 +        directors = directors or 'directors' in m[0]      return mnames, directors  def _add_director_header_targets(target, env): diff --git a/engine/SCons/Tool/tar.py b/engine/SCons/Tool/tar.py index 6a59683..564ea0f 100644 --- a/engine/SCons/Tool/tar.py +++ b/engine/SCons/Tool/tar.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/tar.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/tar.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Action  import SCons.Builder diff --git a/engine/SCons/Tool/tex.py b/engine/SCons/Tool/tex.py index 8c4ee96..c9d9f55 100644 --- a/engine/SCons/Tool/tex.py +++ b/engine/SCons/Tool/tex.py @@ -33,7 +33,7 @@ selection method.  #  from __future__ import print_function -__revision__ = "src/engine/SCons/Tool/tex.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/tex.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import re @@ -297,8 +297,8 @@ def InternalLaTeXAuxAction(XXXLaTeXAction, target = None, source= None, env=None          logfilename = targetbase + '.log'          logContent = ''          if os.path.isfile(logfilename): -            with open(logfilename, "r") as f: -                logContent = f.read() +            with open(logfilename, "rb") as f: +                logContent = f.read().decode(errors='replace')          # Read the fls file to find all .aux files diff --git a/engine/SCons/Tool/textfile.py b/engine/SCons/Tool/textfile.py index 8d19649..906c1ac 100644 --- a/engine/SCons/Tool/textfile.py +++ b/engine/SCons/Tool/textfile.py @@ -44,7 +44,7 @@ Textfile/Substfile builder for SCons.      is unpredictable whether the expansion will occur.  """ -__revision__ = "src/engine/SCons/Tool/textfile.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/textfile.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons diff --git a/engine/SCons/Tool/tlib.py b/engine/SCons/Tool/tlib.py index 0e83c17..935b83f 100644 --- a/engine/SCons/Tool/tlib.py +++ b/engine/SCons/Tool/tlib.py @@ -27,7 +27,7 @@ XXX  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/tlib.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/tlib.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Tool  import SCons.Tool.bcc32 diff --git a/engine/SCons/Tool/wix.py b/engine/SCons/Tool/wix.py index 6ee1784..093cbcd 100644 --- a/engine/SCons/Tool/wix.py +++ b/engine/SCons/Tool/wix.py @@ -30,7 +30,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/wix.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/wix.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import SCons.Builder  import SCons.Action diff --git a/engine/SCons/Tool/xgettext.py b/engine/SCons/Tool/xgettext.py index 920255a..1544a62 100644 --- a/engine/SCons/Tool/xgettext.py +++ b/engine/SCons/Tool/xgettext.py @@ -24,7 +24,7 @@ Tool specific initialization of `xgettext` tool.  # 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/Tool/xgettext.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/xgettext.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import re diff --git a/engine/SCons/Tool/yacc.py b/engine/SCons/Tool/yacc.py index aaf9a8a..0fdd5dd 100644 --- a/engine/SCons/Tool/yacc.py +++ b/engine/SCons/Tool/yacc.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/yacc.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/yacc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import sys diff --git a/engine/SCons/Tool/zip.py b/engine/SCons/Tool/zip.py index 1c482eb..8b7ab76 100644 --- a/engine/SCons/Tool/zip.py +++ b/engine/SCons/Tool/zip.py @@ -31,7 +31,7 @@ selection method.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/zip.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Tool/zip.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path diff --git a/engine/SCons/Util.py b/engine/SCons/Util.py index 7bb22cd..2bc129a 100644 --- a/engine/SCons/Util.py +++ b/engine/SCons/Util.py @@ -24,7 +24,7 @@ Various utility functions go here.  # 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/Util.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Util.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import sys diff --git a/engine/SCons/Variables/BoolVariable.py b/engine/SCons/Variables/BoolVariable.py index 287a72a..629faaf 100644 --- a/engine/SCons/Variables/BoolVariable.py +++ b/engine/SCons/Variables/BoolVariable.py @@ -34,7 +34,7 @@ Usage example::  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Variables/BoolVariable.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/BoolVariable.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __all__ = ['BoolVariable',] diff --git a/engine/SCons/Variables/EnumVariable.py b/engine/SCons/Variables/EnumVariable.py index 19cd908..22630a4 100644 --- a/engine/SCons/Variables/EnumVariable.py +++ b/engine/SCons/Variables/EnumVariable.py @@ -37,7 +37,7 @@ Usage example::  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Variables/EnumVariable.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/EnumVariable.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __all__ = ['EnumVariable',] diff --git a/engine/SCons/Variables/ListVariable.py b/engine/SCons/Variables/ListVariable.py index 89b04d3..bf0f856 100644 --- a/engine/SCons/Variables/ListVariable.py +++ b/engine/SCons/Variables/ListVariable.py @@ -46,7 +46,7 @@ Usage example::  # 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/Variables/ListVariable.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/ListVariable.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  # Known Bug: This should behave like a Set-Type, but does not really,  # since elements can occur twice. diff --git a/engine/SCons/Variables/PackageVariable.py b/engine/SCons/Variables/PackageVariable.py index 2100314..12b8974 100644 --- a/engine/SCons/Variables/PackageVariable.py +++ b/engine/SCons/Variables/PackageVariable.py @@ -50,7 +50,7 @@ Usage example:  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Variables/PackageVariable.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/PackageVariable.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __all__ = ['PackageVariable',] diff --git a/engine/SCons/Variables/PathVariable.py b/engine/SCons/Variables/PathVariable.py index 88d277e..5b3059d 100644 --- a/engine/SCons/Variables/PathVariable.py +++ b/engine/SCons/Variables/PathVariable.py @@ -67,7 +67,7 @@ Usage example::  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Variables/PathVariable.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/PathVariable.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __all__ = ['PathVariable',] diff --git a/engine/SCons/Variables/__init__.py b/engine/SCons/Variables/__init__.py index 9daad3f..31d6621 100644 --- a/engine/SCons/Variables/__init__.py +++ b/engine/SCons/Variables/__init__.py @@ -26,7 +26,7 @@ customizable variables to an SCons build.  # 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/Variables/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Variables/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os.path  import sys diff --git a/engine/SCons/Warnings.py b/engine/SCons/Warnings.py index 064076e..49a35a9 100644 --- a/engine/SCons/Warnings.py +++ b/engine/SCons/Warnings.py @@ -27,7 +27,7 @@ This file implements the warnings framework for SCons.  """ -__revision__ = "src/engine/SCons/Warnings.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/Warnings.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import sys @@ -120,33 +120,15 @@ class PythonVersionWarning(DeprecatedWarning):  class DeprecatedSourceCodeWarning(FutureDeprecatedWarning):      pass -class DeprecatedBuildDirWarning(DeprecatedWarning): -    pass -  class TaskmasterNeedsExecuteWarning(DeprecatedWarning):      pass -class DeprecatedCopyWarning(MandatoryDeprecatedWarning): -    pass -  class DeprecatedOptionsWarning(MandatoryDeprecatedWarning):      pass -class DeprecatedSourceSignaturesWarning(MandatoryDeprecatedWarning): -    pass - -class DeprecatedTargetSignaturesWarning(MandatoryDeprecatedWarning): -    pass -  class DeprecatedDebugOptionsWarning(MandatoryDeprecatedWarning):      pass -class DeprecatedSigModuleWarning(MandatoryDeprecatedWarning): -    pass - -class DeprecatedBuilderKeywordsWarning(MandatoryDeprecatedWarning): -    pass -  class DeprecatedMissingSConscriptWarning(DeprecatedWarning):      pass diff --git a/engine/SCons/__init__.py b/engine/SCons/__init__.py index 7ffc3bb..42582b1 100644 --- a/engine/SCons/__init__.py +++ b/engine/SCons/__init__.py @@ -27,15 +27,15 @@ The main package for the SCons software construction utility.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan" -__version__ = "3.1.1" +__version__ = "3.1.2" -__build__ = "72ae09dc35ac2626f8ff711d8c4b30b6138e08e3" +__build__ = "bee7caf9defd6e108fc2998a2520ddb36a967691"  __buildsys__ = "octodog" -__date__ = "2019-08-08 14:50:06" +__date__ = "2019-12-17 02:07:09"  __developer__ = "bdeegan" diff --git a/engine/SCons/compat/__init__.py b/engine/SCons/compat/__init__.py index 439d3f6..a3935c3 100644 --- a/engine/SCons/compat/__init__.py +++ b/engine/SCons/compat/__init__.py @@ -57,7 +57,7 @@ function defined below loads the module as the "real" name (without the  rest of our code will find our pre-loaded compatibility module.  """ -__revision__ = "src/engine/SCons/compat/__init__.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/compat/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import os  import sys diff --git a/engine/SCons/compat/_scons_dbm.py b/engine/SCons/compat/_scons_dbm.py index c9682f8..c5da402 100644 --- a/engine/SCons/compat/_scons_dbm.py +++ b/engine/SCons/compat/_scons_dbm.py @@ -30,7 +30,7 @@ that the whichdb.whichdb() implementstation in the various 2.X versions of  Python won't blow up even if dbm wasn't compiled in.  """ -__revision__ = "src/engine/SCons/compat/_scons_dbm.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/compat/_scons_dbm.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  class error(Exception):      pass diff --git a/engine/SCons/cpp.py b/engine/SCons/cpp.py index d9b3a2c..17a92e1 100644 --- a/engine/SCons/cpp.py +++ b/engine/SCons/cpp.py @@ -21,7 +21,7 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/cpp.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/cpp.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  __doc__ = """  SCons C Pre-Processor module diff --git a/engine/SCons/exitfuncs.py b/engine/SCons/exitfuncs.py index 8f5207d..43ae73b 100644 --- a/engine/SCons/exitfuncs.py +++ b/engine/SCons/exitfuncs.py @@ -27,7 +27,7 @@ Register functions which are executed when SCons exits for any reason.  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/exitfuncs.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan" +__revision__ = "src/engine/SCons/exitfuncs.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"  import atexit  | 
