diff options
author | Steven Knight <knight@baldmt.com> | 2002-01-05 20:07:24 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-01-05 20:07:24 (GMT) |
commit | 1fe779a3c478c50c02504679ebda31e3ab515c3f (patch) | |
tree | cdc7079fe9cf1cc470e40d79fffa5e7e033f0709 /src/engine | |
parent | 6d468a078a9e5433f4270743727b474573a73089 (diff) | |
download | SCons-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.py | 17 |
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 |