From 061a76ccb6bf605022292b88ffe535c75c407d82 Mon Sep 17 00:00:00 2001 From: Anatoli Babenia Date: Sun, 4 Sep 2022 18:20:33 +0300 Subject: Exec `EnsureSconsVersion` without init of default environment --- SCons/Script/SConscript.py | 8 +++++--- SCons/Script/__init__.py | 9 ++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/SCons/Script/SConscript.py b/SCons/Script/SConscript.py index 548ef44..a85c12c 100644 --- a/SCons/Script/SConscript.py +++ b/SCons/Script/SConscript.py @@ -390,7 +390,8 @@ class SConsEnvironment(SCons.Environment.Base): in 'v_major' and 'v_minor', and 0 otherwise.""" return (major > v_major or (major == v_major and minor > v_minor)) - def _get_major_minor_revision(self, version_string): + @staticmethod + def _get_major_minor_revision(version_string): """Split a version string into major, minor and (optionally) revision parts. @@ -488,14 +489,15 @@ class SConsEnvironment(SCons.Environment.Base): def Default(self, *targets): SCons.Script._Set_Default_Targets(self, targets) - def EnsureSConsVersion(self, major, minor, revision=0): + @staticmethod + def EnsureSConsVersion(major, minor, revision=0): """Exit abnormally if the SCons version is not late enough.""" # split string to avoid replacement during build process if SCons.__version__ == '__' + 'VERSION__': SCons.Warnings.warn(SCons.Warnings.DevelopmentVersionWarning, "EnsureSConsVersion is ignored for development version") return - scons_ver = self._get_major_minor_revision(SCons.__version__) + scons_ver = SConsEnvironment._get_major_minor_revision(SCons.__version__) if scons_ver < (major, minor, revision): if revision: scons_ver_string = '%d.%d.%d' % (major, minor, revision) diff --git a/SCons/Script/__init__.py b/SCons/Script/__init__.py index c2c5e2d..029dc8e 100644 --- a/SCons/Script/__init__.py +++ b/SCons/Script/__init__.py @@ -287,14 +287,17 @@ def Variables(files=None, args=ARGUMENTS): return SCons.Variables.Variables(files, args) -# The list of global functions to add to the SConscript name space -# that end up calling corresponding methods or Builders in the +# Adding global functions to the SConscript name space. +# +# Static functions that do not use state in DefaultEnvironment(). +EnsureSConsVersion = _SConscript.SConsEnvironment.EnsureSConsVersion + +# Functions that end up calling methods or Builders in the # DefaultEnvironment(). GlobalDefaultEnvironmentFunctions = [ # Methods from the SConsEnvironment class, above. 'Default', 'EnsurePythonVersion', - 'EnsureSConsVersion', 'Exit', 'Export', 'GetLaunchDir', -- cgit v0.12