From 9cd3bd61a426a2c1dad2fb0c6a52d08f56493c02 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Mon, 5 Jul 2010 17:15:02 +0000 Subject: Fix substitution in command-line actions created by the global Alias() function. --- src/CHANGES.txt | 2 ++ src/engine/SCons/Environment.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 0795195..0df4d37 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -44,6 +44,8 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE - Fix explicit dependencies (Depends()) on Nodes that don't have attached Builders. + - Fix use of the global Alias() function with command actions. + From Matt Hughes: - Fix the ability to append to default $*FLAGS values (which are 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) -- cgit v0.12