diff options
Diffstat (limited to 'src/engine/SCons/Script/Main.py')
| -rw-r--r-- | src/engine/SCons/Script/Main.py | 59 | 
1 files changed, 36 insertions, 23 deletions
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index 076c30b..878f824 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -17,7 +17,7 @@ unsupported_python_version = (2, 6, 0)  deprecated_python_version = (2, 7, 0) -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -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 rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog" +__revision__ = "src/engine/SCons/Script/Main.py e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan"  import SCons.compat @@ -48,6 +48,7 @@ import sys  import time  import traceback  import sysconfig +import platform  import SCons.CacheDir  import SCons.Debug @@ -58,6 +59,7 @@ import SCons.Job  import SCons.Node  import SCons.Node.FS  import SCons.Platform +import SCons.Platform.virtualenv  import SCons.SConf  import SCons.Script  import SCons.Taskmaster @@ -66,6 +68,20 @@ import SCons.Warnings  import SCons.Script.Interactive +# Global variables +first_command_start = None +last_command_end = None +print_objects = 0 +print_memoizer = 0 +print_stacktrace = 0 +print_time = 0 +sconscript_time = 0 +cumulative_command_time = 0 +exit_status = 0   # final exit status, assume success by default +this_build_status = 0   # "exit status" of an individual build +num_jobs = None +delayed_warnings = [] +  def fetch_win32_parallel_msg():      # A subsidiary function that exists solely to isolate this import @@ -85,15 +101,14 @@ def revert_io():      sys.stderr = sys.__stderr__      sys.stdout = sys.__stdout__ +  class SConsPrintHelpException(Exception):      pass +  display = SCons.Util.display  progress_display = SCons.Util.DisplayEngine() -first_command_start = None -last_command_end = None -  class Progressor(object):      prev = '' @@ -441,19 +456,6 @@ def python_version_deprecated(version=sys.version_info):      return version < deprecated_python_version -# Global variables - -print_objects = 0 -print_memoizer = 0 -print_stacktrace = 0 -print_time = 0 -sconscript_time = 0 -cumulative_command_time = 0 -exit_status = 0 # final exit status, assume success by default -this_build_status = 0 # "exit status" of an individual build -num_jobs = None -delayed_warnings = [] -  class FakeOptionParser(object):      """      A do-nothing option parser, used for the initial OptionsParser variable. @@ -622,7 +624,7 @@ def _SConstruct_exists(dirname='', repositories=[], filelist=None):      current directory.      """      if not filelist: -        filelist = ['SConstruct', 'Sconstruct', 'sconstruct'] +        filelist = ['SConstruct', 'Sconstruct', 'sconstruct', 'SConstruct.py', 'Sconstruct.py', 'sconstruct.py']      for file in filelist:          sfile = os.path.join(dirname, file)          if os.path.isfile(sfile): @@ -862,6 +864,13 @@ def _main(parser):      for warning_type, message in delayed_warnings:          SCons.Warnings.warn(warning_type, message) +    if not SCons.Platform.virtualenv.virtualenv_enabled_by_default: +        if options.enable_virtualenv: +            SCons.Platform.virtualenv.enable_virtualenv = True + +    if options.ignore_virtualenv: +        SCons.Platform.virtualenv.ignore_virtualenv = True +      if options.diskcheck:          SCons.Node.FS.set_diskcheck(options.diskcheck) @@ -1161,7 +1170,7 @@ def _build_targets(fs, options, targets, target_top):                  # -U, local SConscript Default() targets                  target_top = fs.Dir(target_top)                  def check_dir(x, target_top=target_top): -                    if hasattr(x, 'cwd') and not x.cwd is None: +                    if hasattr(x, 'cwd') and x.cwd is not None:                          cwd = x.cwd.srcnode()                          return cwd == target_top                      else: @@ -1253,7 +1262,11 @@ def _build_targets(fs, options, targets, target_top):      BuildTask.options = options -    python_has_threads = sysconfig.get_config_var('WITH_THREAD') +    is_pypy = platform.python_implementation() == 'PyPy' +    # As of 3.7, python removed support for threadless platforms. +    # See https://www.python.org/dev/peps/pep-0011/ +    is_37_or_later = sys.version_info >= (3, 7) +    python_has_threads = sysconfig.get_config_var('WITH_THREAD') or is_pypy or is_37_or_later      # to check if python configured with threads.      global num_jobs      num_jobs = options.num_jobs @@ -1347,7 +1360,7 @@ def main():          pass      parts.append(version_string("engine", SCons))      parts.append(path_string("engine", SCons)) -    parts.append("Copyright (c) 2001 - 2017 The SCons Foundation") +    parts.append("Copyright (c) 2001 - 2019 The SCons Foundation")      version = ''.join(parts)      from . import SConsOptions @@ -1363,7 +1376,7 @@ def main():              revert_io()      except SystemExit as s:          if s: -            exit_status = s +            exit_status = s.code      except KeyboardInterrupt:          print("scons: Build interrupted.")          sys.exit(2)  | 
