summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2008-09-11 01:28:15 (GMT)
committerSteven Knight <knight@baldmt.com>2008-09-11 01:28:15 (GMT)
commit4519bfd9be6fcf55732666e7c541faea0a8f1533 (patch)
tree12b302fe4ee7d4dcf422600af9d4b990eee2a19b /src/engine
parentfea8478717f8cce00ed0c0aa7d9ad79484bbd57c (diff)
downloadSCons-4519bfd9be6fcf55732666e7c541faea0a8f1533.zip
SCons-4519bfd9be6fcf55732666e7c541faea0a8f1533.tar.gz
SCons-4519bfd9be6fcf55732666e7c541faea0a8f1533.tar.bz2
Issue 1681: Fix the ability of add_src_builder() to handle arbitrary
builder objects by eliminating unintentional re-use of a class list for the src_builder attribute.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Builder.py6
-rw-r--r--src/engine/SCons/BuilderTests.py3
2 files changed, 7 insertions, 2 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 2e10a8d..45bd99a 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -363,7 +363,7 @@ class BuilderBase:
name = None,
chdir = _null,
is_explicit = 1,
- src_builder = [],
+ src_builder = None,
ensure_suffix = False,
**overrides):
if __debug__: logInstanceCreation(self, 'Builder.BuilderBase')
@@ -410,7 +410,9 @@ class BuilderBase:
self.executor_kw['chdir'] = chdir
self.is_explicit = is_explicit
- if not SCons.Util.is_List(src_builder):
+ if src_builder is None:
+ src_builder = []
+ elif not SCons.Util.is_List(src_builder):
src_builder = [ src_builder ]
self.src_builder = src_builder
diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py
index 1b7bc38..eeb3b3f 100644
--- a/src/engine/SCons/BuilderTests.py
+++ b/src/engine/SCons/BuilderTests.py
@@ -840,6 +840,9 @@ class BuilderTestCase(unittest.TestCase):
s = map(str, tgt.sources[0].sources)
assert s == ['aaa.bar'], s
+ builder3 = SCons.Builder.Builder(action='bld3')
+ assert not builder3.src_builder is builder1.src_builder
+
builder4 = SCons.Builder.Builder(action='bld4',
src_suffix='.i',
suffix='_wrap.c')