diff options
| author | Mats Wichmann <mats@linux.com> | 2019-12-15 13:48:35 (GMT) |
|---|---|---|
| committer | Mats Wichmann <mats@linux.com> | 2019-12-15 16:04:34 (GMT) |
| commit | ac61e3fead14db2d61ac449d458c04f4bba4053f (patch) | |
| tree | 88ad598e5fe69e9ffd1b5a6e4a77bd1b93229555 | |
| parent | e8415886126979bec0a76095ec724a51605b7a87 (diff) | |
| download | SCons-ac61e3fead14db2d61ac449d458c04f4bba4053f.zip SCons-ac61e3fead14db2d61ac449d458c04f4bba4053f.tar.gz SCons-ac61e3fead14db2d61ac449d458c04f4bba4053f.tar.bz2 | |
Remove deprecated BuildDir, build_dir
Updates docs and code; moves tests to test/Removed/BuildDir/Old.
New tests verify that these can no longer be used.
Along the way a small cleanup in SConscript.py
Signed-off-by: Mats Wichmann <mats@linux.com>
| -rw-r--r-- | doc/user/separate.xml | 6 | ||||
| -rwxr-xr-x | src/CHANGES.txt | 1 | ||||
| -rw-r--r-- | src/engine/SCons/Environment.py | 8 | ||||
| -rw-r--r-- | src/engine/SCons/Environment.xml | 22 | ||||
| -rw-r--r-- | src/engine/SCons/Script/SConscript.py | 24 | ||||
| -rw-r--r-- | src/engine/SCons/Script/__init__.py | 1 | ||||
| -rw-r--r-- | src/engine/SCons/Warnings.py | 9 | ||||
| -rw-r--r-- | test/Removed/BuildDir/Old/BuildDir.py (renamed from test/Deprecated/BuildDir.py) | 0 | ||||
| -rw-r--r-- | test/Removed/BuildDir/Old/SConscript-build_dir.py (renamed from test/Deprecated/SConscript-build_dir.py) | 0 | ||||
| -rw-r--r-- | test/Removed/BuildDir/README.md | 6 | ||||
| -rw-r--r-- | test/Removed/BuildDir/SConstruct.global | 1 | ||||
| -rw-r--r-- | test/Removed/BuildDir/SConstruct.kwarg | 1 | ||||
| -rw-r--r-- | test/Removed/BuildDir/SConstruct.method | 3 |
13 files changed, 22 insertions, 60 deletions
diff --git a/doc/user/separate.xml b/doc/user/separate.xml index c276545..748a124 100644 --- a/doc/user/separate.xml +++ b/doc/user/separate.xml @@ -149,10 +149,8 @@ program using the F<build/foo.c> path name. <para> One historical note: the &VariantDir; function - used to be called &BuildDir;. - That name is still supported - but has been deprecated - because the &SCons; functionality + used to be called &BuildDir;, a name which was + removed because the &SCons; functionality differs from the model of a "build directory" implemented by other build systems like the GNU Autotools. diff --git a/src/CHANGES.txt b/src/CHANGES.txt index dade5e0..28a4b43 100755 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -66,6 +66,7 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER - Remove deprecated SourceSignatures, TargetSignatures - Remove deprecated Builder keywords: overrides and scanner - Remove deprecated env.Copy + - Remove deprecated BuildDir plus SConscript keyword build_dir - A number of documentation improvements. diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py index 4535be9..27179c3 100644 --- a/src/engine/SCons/Environment.py +++ b/src/engine/SCons/Environment.py @@ -1929,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) diff --git a/src/engine/SCons/Environment.xml b/src/engine/SCons/Environment.xml index 73c347e..6f263a4 100644 --- a/src/engine/SCons/Environment.xml +++ b/src/engine/SCons/Environment.xml @@ -613,28 +613,6 @@ env.AppendUnique(CCFLAGS = '-g', FOO = ['foo.yyy']) </summary> </scons_function> -<scons_function name="BuildDir"> -<arguments> -(build_dir, src_dir, [duplicate]) -</arguments> -<summary> -<para> -Deprecated synonyms for -&f-VariantDir; -and -<function>env.VariantDir</function>(). -The -<varname>build_dir</varname> -argument becomes the -<varname>variant_dir</varname> -argument of -&f-VariantDir; -or -<function>env.VariantDir</function>(). -</para> -</summary> -</scons_function> - <scons_function name="Builder"> <arguments> (action, [arguments]) diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py index eabaddb..0298a69 100644 --- a/src/engine/SCons/Script/SConscript.py +++ b/src/engine/SCons/Script/SConscript.py @@ -42,7 +42,7 @@ import SCons.Platform import SCons.SConf import SCons.Script.Main import SCons.Tool -import SCons.Util +from SCons.Util import is_List, is_String, is_Dict, flatten from . import Main @@ -98,7 +98,7 @@ def compute_exports(exports): retval = {} try: for export in exports: - if SCons.Util.is_Dict(export): + if is_Dict(export): retval.update(export) else: try: @@ -133,7 +133,7 @@ call_stack = [] def Return(*vars, **kw): retval = [] try: - fvars = SCons.Util.flatten(vars) + fvars = flatten(vars) for var in fvars: for v in var.split(): retval.append(call_stack[-1].globals[v]) @@ -420,7 +420,7 @@ class SConsEnvironment(SCons.Environment.Base): except KeyError: raise SCons.Errors.UserError("Invalid SConscript usage - no parameters") - if not SCons.Util.is_List(dirs): + if not is_List(dirs): dirs = [ dirs ] dirs = list(map(str, dirs)) @@ -441,13 +441,13 @@ class SConsEnvironment(SCons.Environment.Base): raise SCons.Errors.UserError("Invalid SConscript() usage - too many arguments") - if not SCons.Util.is_List(files): + if not is_List(files): files = [ files ] if kw.get('exports'): exports.extend(self.Split(kw['exports'])) - variant_dir = kw.get('variant_dir') or kw.get('build_dir') + variant_dir = kw.get('variant_dir') if variant_dir: if len(files) != 1: raise SCons.Errors.UserError("Invalid SConscript() usage - can only specify one SConscript with a variant_dir") @@ -577,9 +577,6 @@ class SConsEnvironment(SCons.Environment.Base): UserError: a script is not found and such exceptions are enabled. """ - if 'build_dir' in kw: - msg = """The build_dir keyword has been deprecated; use the variant_dir keyword instead.""" - SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg) def subst_element(x, subst=self.subst): if SCons.Util.is_List(x): x = list(map(subst, x)) @@ -589,15 +586,10 @@ class SConsEnvironment(SCons.Environment.Base): ls = list(map(subst_element, ls)) subst_kw = {} for key, val in kw.items(): - if SCons.Util.is_String(val): + if is_String(val): val = self.subst(val) elif SCons.Util.is_List(val): - result = [] - for v in val: - if SCons.Util.is_String(v): - v = self.subst(v) - result.append(v) - val = result + val = [self.subst(v) if is_String(v) else v for v in val] subst_kw[key] = val files, exports = self._get_SConscript_filenames(ls, subst_kw) diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py index 24af73e..9947943 100644 --- a/src/engine/SCons/Script/__init__.py +++ b/src/engine/SCons/Script/__init__.py @@ -314,7 +314,6 @@ GlobalDefaultEnvironmentFunctions = [ 'AddPreAction', 'Alias', 'AlwaysBuild', - 'BuildDir', 'CacheDir', 'Clean', #The Command() method is handled separately, below. diff --git a/src/engine/SCons/Warnings.py b/src/engine/SCons/Warnings.py index cd24b7c..fcec963 100644 --- a/src/engine/SCons/Warnings.py +++ b/src/engine/SCons/Warnings.py @@ -120,9 +120,6 @@ class PythonVersionWarning(DeprecatedWarning): class DeprecatedSourceCodeWarning(FutureDeprecatedWarning): pass -class DeprecatedBuildDirWarning(DeprecatedWarning): - pass - class TaskmasterNeedsExecuteWarning(DeprecatedWarning): pass @@ -132,12 +129,6 @@ class DeprecatedOptionsWarning(MandatoryDeprecatedWarning): class DeprecatedDebugOptionsWarning(MandatoryDeprecatedWarning): pass -class DeprecatedSigModuleWarning(MandatoryDeprecatedWarning): - pass - -class DeprecatedBuilderKeywordsWarning(MandatoryDeprecatedWarning): - pass - class DeprecatedMissingSConscriptWarning(DeprecatedWarning): pass diff --git a/test/Deprecated/BuildDir.py b/test/Removed/BuildDir/Old/BuildDir.py index 1a1ba02..1a1ba02 100644 --- a/test/Deprecated/BuildDir.py +++ b/test/Removed/BuildDir/Old/BuildDir.py diff --git a/test/Deprecated/SConscript-build_dir.py b/test/Removed/BuildDir/Old/SConscript-build_dir.py index 0d1ba6a..0d1ba6a 100644 --- a/test/Deprecated/SConscript-build_dir.py +++ b/test/Removed/BuildDir/Old/SConscript-build_dir.py diff --git a/test/Removed/BuildDir/README.md b/test/Removed/BuildDir/README.md new file mode 100644 index 0000000..c4fd879 --- /dev/null +++ b/test/Removed/BuildDir/README.md @@ -0,0 +1,6 @@ +BuildDir/Old contains old tests which used the now removed BuildDir +function, env.BuildDir method, and build_dir argument to SConscript, +preserved here for reference; the presence of an scontest.skip file +means they are never executed. + +The "new" tests verify failure using these symbols. diff --git a/test/Removed/BuildDir/SConstruct.global b/test/Removed/BuildDir/SConstruct.global new file mode 100644 index 0000000..086fbae --- /dev/null +++ b/test/Removed/BuildDir/SConstruct.global @@ -0,0 +1 @@ +BuildDir('build', 'src') diff --git a/test/Removed/BuildDir/SConstruct.kwarg b/test/Removed/BuildDir/SConstruct.kwarg new file mode 100644 index 0000000..a5c46fb --- /dev/null +++ b/test/Removed/BuildDir/SConstruct.kwarg @@ -0,0 +1 @@ +SConscript('src/SConscript', build_dir='build') diff --git a/test/Removed/BuildDir/SConstruct.method b/test/Removed/BuildDir/SConstruct.method new file mode 100644 index 0000000..afea459 --- /dev/null +++ b/test/Removed/BuildDir/SConstruct.method @@ -0,0 +1,3 @@ +env = Environment(BUILD='build', SRC='src') + +env.BuildDir('build', 'src') |
