Fix use of a list of SConscript files when calling env.SConscript().
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 29 Sep 2004 12:06:20 +0000 (12:06 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 29 Sep 2004 12:06:20 +0000 (12:06 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1110 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Script/SConscript.py
test/SConscript.py

index 15be7db4b9b343e8ae9e064485dace0dc9202f3a..d538b1252388af5378362782d0f468c619b585fc 100644 (file)
@@ -82,6 +82,9 @@ RELEASE 0.97 - XXX
   - On Win32, install scons.bat in the Python directory when installing
     from setup.py.  (The bdist_wininst installer was already doing this.)
 
+  - Fix env.SConscript() when called with a list of SConscipt files.
+    (The SConscript() global function already worked properly.)
+
   From Clive Levinson:
 
   - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and
index 88d326849fcf398cba08fca2e6d79642857002c0..6adb399a6ac1d30cc8e0a1c3576a2fb15a78924f 100644 (file)
@@ -495,7 +495,13 @@ class SConsEnvironment(SCons.Environment.Base):
             raise SCons.Errors.UserError, "Import of non-existent variable '%s'"%x
 
     def SConscript(self, *ls, **kw):
-        ls = map(lambda l, self=self: self.subst(l), ls)
+        def subst_element(x, subst=self.subst):
+            if SCons.Util.is_List(x):
+                x = map(subst, x)
+            else:
+                x = subst(x)
+            return x
+        ls = map(subst_element, ls)
         subst_kw = {}
         for key, val in kw.items():
             if SCons.Util.is_String(val):
index e70fb362990ad8613ac5b81c3759c5ff5e6b8949..4aaed3ba41d254d34f24ec788fdabbe7af4d20b5 100644 (file)
@@ -374,6 +374,8 @@ y = 'yyy'
 env.Export(["x", "y"])
 env.SConscript('$SUB1/SConscript')
 env.SConscript(dirs=['$SUB2'])
+SConscript(['s1', 's2'])
+env.SConscript(['s3', 's4'])
 """)
 
 test.write(['sub1', 'SConscript'], """\
@@ -390,6 +392,11 @@ print "sub2/SConscript"
 print "y =", y
 """)
 
+test.write('s1', "\n")
+test.write('s2', "\n")
+test.write('s3', "\n")
+test.write('s4', "\n")
+
 expect = """\
 SConstruct
 sub1/SConscript