diff options
author | Steven Knight <knight@baldmt.com> | 2002-01-31 04:29:50 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-01-31 04:29:50 (GMT) |
commit | 1ce93f395c1d41297ba0ef82fb80be7a4d69daa9 (patch) | |
tree | fcb73c18df1f313aef2747e4036be3453094225b /src/engine/SCons | |
parent | ae1c3983b9c6d41608d494dfbdace21cdd459951 (diff) | |
download | SCons-1ce93f395c1d41297ba0ef82fb80be7a4d69daa9.zip SCons-1ce93f395c1d41297ba0ef82fb80be7a4d69daa9.tar.gz SCons-1ce93f395c1d41297ba0ef82fb80be7a4d69daa9.tar.bz2 |
Allow libraries to specified as source files on the command line.
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Builder.py | 5 | ||||
-rw-r--r-- | src/engine/SCons/BuilderTests.py | 18 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py index 27e7559..130a9e2 100644 --- a/src/engine/SCons/Builder.py +++ b/src/engine/SCons/Builder.py @@ -235,6 +235,9 @@ class MultiStepBuilder(BuilderBase): BuilderBase.__init__(self, name, action, prefix, suffix, src_suffix, node_factory, scanner) self.src_builder = src_builder + self.dictSrcSuffix = {} + for suff in self.src_builder.src_suffixes(): + self.dictSrcSuffix[suff] = None def __call__(self, env, target = None, source = None): slist = SCons.Util.scons_str2nodes(source, self.node_factory) @@ -242,7 +245,7 @@ class MultiStepBuilder(BuilderBase): src_suffix = env.subst(self.src_suffix) for snode in slist: path, ext = os.path.splitext(snode.abspath) - if not src_suffix or ext != src_suffix: + if self.dictSrcSuffix.has_key(ext): tgt = self.src_builder(env, target = [ path ], source=snode) if not SCons.Util.is_List(tgt): diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py index c5e87c4..5fb273b 100644 --- a/src/engine/SCons/BuilderTests.py +++ b/src/engine/SCons/BuilderTests.py @@ -490,16 +490,16 @@ class BuilderTestCase(unittest.TestCase): src_suffix='.bar', suffix='.foo') builder2 = SCons.Builder.MultiStepBuilder(name = "builder2", - action='foo', - src_builder = builder1) + action='bar', + src_builder = builder1, + src_suffix = '.foo') tgt = builder2(env, target='baz', source='test.bar test2.foo test3.txt') - flag = 0 - for snode in tgt.sources: - if snode.path == 'test.foo': - flag = 1 - assert snode.sources[0].path == 'test.bar' - assert flag - + assert str(tgt.sources[0]) == 'test.foo', str(tgt.sources[0]) + assert str(tgt.sources[0].sources[0]) == 'test.bar', \ + str(tgt.sources[0].sources[0]) + assert str(tgt.sources[1]) == 'test2.foo', str(tgt.sources[1]) + assert str(tgt.sources[2]) == 'test3.txt', str(tgt.sources[2]) + def test_CompositeBuilder(self): """Testing CompositeBuilder class.""" builder = SCons.Builder.Builder(name = "builder", |