summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2010-07-05 17:15:02 (GMT)
committerSteven Knight <knight@baldmt.com>2010-07-05 17:15:02 (GMT)
commit9cd3bd61a426a2c1dad2fb0c6a52d08f56493c02 (patch)
treea055e3398b931df58f521c6e7bc02e74ae289a09 /src/engine
parent8b69585750cb1874419a084a81d809fce009c839 (diff)
downloadSCons-9cd3bd61a426a2c1dad2fb0c6a52d08f56493c02.zip
SCons-9cd3bd61a426a2c1dad2fb0c6a52d08f56493c02.tar.gz
SCons-9cd3bd61a426a2c1dad2fb0c6a52d08f56493c02.tar.bz2
Fix substitution in command-line actions created by the global Alias() function.
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Environment.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index b2ae4de..c7dc474 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -2285,6 +2285,12 @@ def NoSubstitutionProxy(subject):
return getattr(self.__dict__['__subject'], name)
def __setattr__(self, name, value):
return setattr(self.__dict__['__subject'], name, value)
+ def executor_to_lvars(self, kwdict):
+ if kwdict.has_key('executor'):
+ kwdict['lvars'] = kwdict['executor'].get_lvars()
+ del kwdict['executor']
+ else:
+ kwdict['lvars'] = {}
def raw_to_mode(self, dict):
try:
raw = dict['raw']
@@ -2301,12 +2307,14 @@ def NoSubstitutionProxy(subject):
nargs = (string, self,) + args
nkw = kwargs.copy()
nkw['gvars'] = {}
+ self.executor_to_lvars(nkw)
self.raw_to_mode(nkw)
return SCons.Subst.scons_subst_list(*nargs, **nkw)
def subst_target_source(self, string, *args, **kwargs):
nargs = (string, self,) + args
nkw = kwargs.copy()
nkw['gvars'] = {}
+ self.executor_to_lvars(nkw)
self.raw_to_mode(nkw)
return SCons.Subst.scons_subst(*nargs, **nkw)
return _NoSubstitutionProxy(subject)