summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Environment.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-04-02 03:49:02 (GMT)
committerSteven Knight <knight@baldmt.com>2004-04-02 03:49:02 (GMT)
commit9c4625382959ec8dbd113beb75cf5eac1f1cde7c (patch)
tree901065967750b3278a55cafbe343fd198ca3843c /src/engine/SCons/Environment.py
parent25b984647e137b2b63c2a32e791c95c7cc2fedae (diff)
downloadSCons-9c4625382959ec8dbd113beb75cf5eac1f1cde7c.zip
SCons-9c4625382959ec8dbd113beb75cf5eac1f1cde7c.tar.gz
SCons-9c4625382959ec8dbd113beb75cf5eac1f1cde7c.tar.bz2
Fix Command() when not called through an Environment.
Diffstat (limited to 'src/engine/SCons/Environment.py')
-rw-r--r--src/engine/SCons/Environment.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 477149b..e332f66 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -438,6 +438,8 @@ class Base:
r.append(p)
return r
+ subst_target_source = subst
+
def _update(self, dict):
"""Update an environment's values directly, bypassing the normal
checks that occur when users try to set items.
@@ -1200,12 +1202,28 @@ def NoSubstitutionProxy(subject):
return getattr(self.__dict__['__subject'], name)
def __setattr__(self, name, value):
return setattr(self.__dict__['__subject'], name, value)
+ def raw_to_mode(self, dict):
+ try:
+ raw = dict['raw']
+ except KeyError:
+ pass
+ else:
+ del dict['raw']
+ dict['mode'] = raw
def subst(self, string, *args, **kwargs):
return string
def subst_kw(self, kw, *args, **kwargs):
return kw
def subst_list(self, string, *args, **kwargs):
- if not SCons.Util.is_List(string):
- string = [[string]]
- return string
+ nargs = (string, self,) + args
+ nkw = kwargs.copy()
+ nkw['gvars'] = {}
+ self.raw_to_mode(nkw)
+ return apply(SCons.Util.scons_subst_list, nargs, nkw)
+ def subst_target_source(self, string, *args, **kwargs):
+ nargs = (string, self,) + args
+ nkw = kwargs.copy()
+ nkw['gvars'] = {}
+ self.raw_to_mode(nkw)
+ return apply(SCons.Util.scons_subst, nargs, nkw)
return _NoSubstitutionProxy(subject)