Move the __env__ construction variable into the Environment itself, not created in...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 7 Feb 2004 13:19:34 +0000 (13:19 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 7 Feb 2004 13:19:34 +0000 (13:19 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@891 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Action.py
src/engine/SCons/Environment.py
src/engine/SCons/Util.py
src/engine/SCons/UtilTests.py

index d9dbca134ada173c6c192d68863bce1cada82bdc..6759b02b98a07b2574304bcc21791e054af1730f 100644 (file)
@@ -440,7 +440,7 @@ class ListAction(ActionBase):
 
         Simple concatenation of the signatures of the elements.
         """
-        dict = SCons.Util.subst_dict(target, source, env)
+        dict = SCons.Util.subst_dict(target, source)
         return string.join(map(lambda x, t=target, s=source, e=env, d=dict:
                                       x.get_contents(t, s, e, d),
                                self.list),
index 43cb2c31f56be052974be6a5923160a2a1080abf..46897ef9bd5ea6ff65c10ddb0f920e52630abc2c 100644 (file)
@@ -218,6 +218,7 @@ class Base:
         self.lookup_list = SCons.Node.arg2nodes_lookups
         self._dict = our_deepcopy(SCons.Defaults.ConstructionEnvironment)
 
+        self._dict['__env__'] = self
         self._dict['BUILDERS'] = BuilderDict(self._dict['BUILDERS'], self)
 
         if platform is None:
index 594274a536364fbfc13fa05dc54def1479869afd..66433938e48e25e4284226767e7b091b538aaad6 100644 (file)
@@ -440,7 +440,7 @@ class Target_or_Source:
             return ''
         return repr(nl0)
 
-def subst_dict(target, source, env):
+def subst_dict(target, source):
     """Create a dictionary for substitution of special
     construction variables.
 
@@ -453,12 +453,8 @@ def subst_dict(target, source, env):
     source - the source (object or array of objects),
              used to generate the SOURCES and SOURCE
              construction variables
-
-    env    - the construction Environment used for this
-             build, which is made available as the __env__
-             construction variable
     """
-    dict = { '__env__' : env, }
+    dict = {}
 
     if target:
         tnl = NLWrapper(target, lambda x: x.get_subst_proxy())
@@ -603,7 +599,7 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, dict=No
                 return self.expand(args, lvars)
 
     if dict is None:
-        dict = subst_dict(target, source, env)
+        dict = subst_dict(target, source)
 
     ss = StringSubber(env, mode, target, source)
     result = ss.substitute(strSubst, dict)
@@ -785,7 +781,7 @@ def scons_subst_list(strSubst, env, mode=SUBST_RAW, target=None, source=None, di
             self.in_strip = None
 
     if dict is None:
-        dict = subst_dict(target, source, env)
+        dict = subst_dict(target, source)
 
     ls = ListSubber(env, mode, target, source)
     ls.substitute(strSubst, dict, 0)
index 646894966cf242e8f9028de06609f7ec65a32c85..687d464c5039aba8b15b1af828a2aa0c0cc2f35c 100644 (file)
@@ -1133,14 +1133,9 @@ class UtilTestCase(unittest.TestCase):
     def test_subst_dict(self):
         """Test substituting dictionary values in an Action
         """
-        env = DummyEnv({'a' : 'A', 'b' : 'B'})
-        d = subst_dict([], [], env)
-        assert d['__env__'] is env, d['__env__']
-
         t = DummyNode('t')
         s = DummyNode('s')
-        env = DummyEnv()
-        d = subst_dict(target=t, source=s, env=env)
+        d = subst_dict(target=t, source=s)
         assert str(d['TARGETS'][0]) == 't', d['TARGETS']
         assert str(d['TARGET']) == 't', d['TARGET']
         assert str(d['SOURCES'][0]) == 's', d['SOURCES']
@@ -1150,7 +1145,7 @@ class UtilTestCase(unittest.TestCase):
         t2 = DummyNode('t2')
         s1 = DummyNode('s1')
         s2 = DummyNode('s2')
-        d = subst_dict(target=[t1, t2], source=[s1, s2], env=env)
+        d = subst_dict(target=[t1, t2], source=[s1, s2])
         TARGETS = map(lambda x: str(x), d['TARGETS'])
         TARGETS.sort()
         assert TARGETS == ['t1', 't2'], d['TARGETS']
@@ -1174,7 +1169,7 @@ class UtilTestCase(unittest.TestCase):
         t4 = DummyNode('t4')
         s3 = DummyNode('s3')
         s4 = N('s4')
-        d = subst_dict(target=[t3, t4], source=[s3, s4], env=env)
+        d = subst_dict(target=[t3, t4], source=[s3, s4])
         TARGETS = map(lambda x: str(x), d['TARGETS'])
         TARGETS.sort()
         assert TARGETS == ['t3', 't4'], d['TARGETS']