summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMats Wichmann <mats@linux.com>2019-12-15 13:48:35 (GMT)
committerMats Wichmann <mats@linux.com>2019-12-15 16:04:34 (GMT)
commitac61e3fead14db2d61ac449d458c04f4bba4053f (patch)
tree88ad598e5fe69e9ffd1b5a6e4a77bd1b93229555
parente8415886126979bec0a76095ec724a51605b7a87 (diff)
downloadSCons-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.xml6
-rwxr-xr-xsrc/CHANGES.txt1
-rw-r--r--src/engine/SCons/Environment.py8
-rw-r--r--src/engine/SCons/Environment.xml22
-rw-r--r--src/engine/SCons/Script/SConscript.py24
-rw-r--r--src/engine/SCons/Script/__init__.py1
-rw-r--r--src/engine/SCons/Warnings.py9
-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.md6
-rw-r--r--test/Removed/BuildDir/SConstruct.global1
-rw-r--r--test/Removed/BuildDir/SConstruct.kwarg1
-rw-r--r--test/Removed/BuildDir/SConstruct.method3
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')