summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-01-31 04:29:50 (GMT)
committerSteven Knight <knight@baldmt.com>2002-01-31 04:29:50 (GMT)
commit1ce93f395c1d41297ba0ef82fb80be7a4d69daa9 (patch)
treefcb73c18df1f313aef2747e4036be3453094225b /src/engine/SCons
parentae1c3983b9c6d41608d494dfbdace21cdd459951 (diff)
downloadSCons-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.py5
-rw-r--r--src/engine/SCons/BuilderTests.py18
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",