diff options
| author | Steven Knight <knight@baldmt.com> | 2008-09-11 01:28:15 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2008-09-11 01:28:15 (GMT) |
| commit | 4519bfd9be6fcf55732666e7c541faea0a8f1533 (patch) | |
| tree | 12b302fe4ee7d4dcf422600af9d4b990eee2a19b /src/engine | |
| parent | fea8478717f8cce00ed0c0aa7d9ad79484bbd57c (diff) | |
| download | SCons-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.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/BuilderTests.py | 3 |
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') |
