diff options
author | Steven Knight <knight@baldmt.com> | 2003-12-18 05:30:09 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-12-18 05:30:09 (GMT) |
commit | 3dbcd90feabb2bc928373fe8618eb4453fcaa76e (patch) | |
tree | 97387ce3d10b56e1798638d0ebc212229c1a4215 /src/engine/SCons/Environment.py | |
parent | 571141b46b2f9ee0f7150bdb3aeee11e2d7bcd21 (diff) | |
download | SCons-3dbcd90feabb2bc928373fe8618eb4453fcaa76e.zip SCons-3dbcd90feabb2bc928373fe8618eb4453fcaa76e.tar.gz SCons-3dbcd90feabb2bc928373fe8618eb4453fcaa76e.tar.bz2 |
Add support for a toolpath for Environments.
Diffstat (limited to 'src/engine/SCons/Environment.py')
-rw-r--r-- | src/engine/SCons/Environment.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py index 26be483..6afa69f 100644 --- a/src/engine/SCons/Environment.py +++ b/src/engine/SCons/Environment.py @@ -109,12 +109,13 @@ def our_deepcopy(x): copy = x return copy -def apply_tools(env, tools): +def apply_tools(env, tools, toolpath): if tools: for tool in tools: if SCons.Util.is_String(tool): - tool = SCons.Tool.Tool(tool) - tool(env) + env.Tool(tool, toolpath) + else: + tool(env) class BuilderWrapper: """Wrapper class that associates an environment with a Builder at @@ -207,6 +208,7 @@ class Base: def __init__(self, platform=None, tools=None, + toolpath=[], options=None, **kw): self.fs = SCons.Node.FS.default_fs @@ -238,7 +240,7 @@ class Base: tools = self._dict.get('TOOLS', None) if tools is None: tools = ['default'] - apply_tools(self, tools) + apply_tools(self, tools, toolpath) # Reapply the passed in variables after calling the tools, # since they should overide anything set by the tools: @@ -461,7 +463,7 @@ class Base: self._dict[envname][name] = nv - def Copy(self, tools=None, **kw): + def Copy(self, tools=None, toolpath=[], **kw): """Return a copy of a construction Environment. The copy is like a Python "deep copy"--that is, independent copies are made recursively of each objects--except that @@ -477,7 +479,7 @@ class Base: except KeyError: pass - apply_tools(clone, tools) + apply_tools(clone, tools, toolpath) # Apply passed-in variables after the new tools. apply(clone.Replace, (), kw) @@ -666,9 +668,9 @@ class Base: name = name[:-len(old_suffix)] return os.path.join(dir, new_prefix+name+new_suffix) - def Tool(self, tool): + def Tool(self, tool, toolpath=[]): tool = self.subst(tool) - return SCons.Tool.Tool(tool)(self) + return SCons.Tool.Tool(tool, map(self.subst, toolpath))(self) def WhereIs(self, prog, path=None, pathext=None): """Find prog in the path. |