summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-01-05 20:07:24 (GMT)
committerSteven Knight <knight@baldmt.com>2002-01-05 20:07:24 (GMT)
commit1fe779a3c478c50c02504679ebda31e3ab515c3f (patch)
treecdc7079fe9cf1cc470e40d79fffa5e7e033f0709 /src/engine
parent6d468a078a9e5433f4270743727b474573a73089 (diff)
downloadSCons-1fe779a3c478c50c02504679ebda31e3ab515c3f.zip
SCons-1fe779a3c478c50c02504679ebda31e3ab515c3f.tar.gz
SCons-1fe779a3c478c50c02504679ebda31e3ab515c3f.tar.bz2
Refactor BuilderBase.__call__() to separate node creation from attribute initialization.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Builder.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 0cf70e4..6651b13 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -160,7 +160,9 @@ class BuilderBase:
def __cmp__(self, other):
return cmp(self.__dict__, other.__dict__)
- def __call__(self, env, target = None, source = None):
+ def _create_nodes(self, env, target = None, source = None):
+ """Create and return lists of target and source nodes.
+ """
def adjustixes(files, pre, suf):
ret = []
if type(files) is types.StringType or isinstance(files, UserString):
@@ -183,10 +185,16 @@ class BuilderBase:
env.subst(self.suffix)),
self.node_factory)
- slist = scons_str2nodes(adjustixes(source, None,
+ slist = scons_str2nodes(adjustixes(source,
+ None,
env.subst(self.src_suffix)),
self.node_factory)
+ return tlist, slist
+ def _init_nodes(self, env, tlist, slist):
+ """Initialize lists of target and source nodes with all of
+ the proper Builder information.
+ """
for t in tlist:
t.cwd = SCons.Node.FS.default_fs.getcwd() # XXX
t.builder_set(self)
@@ -201,6 +209,11 @@ class BuilderBase:
if scanner:
s.scanner_set(scanner.instance(env))
+ def __call__(self, env, target = None, source = None):
+ tlist, slist = self._create_nodes(env, target, source)
+
+ self._init_nodes(env, tlist, slist)
+
if len(tlist) == 1:
tlist = tlist[0]
return tlist