Fix a bug that caused BuildDir(duplicate=1) along with passing a Node to SConscript...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 2 May 2002 18:32:06 +0000 (18:32 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 2 May 2002 18:32:06 +0000 (18:32 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@359 fdb21ef1-2011-0410-befe-b5e4ea1792b1

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

index caaaf3e4c12adece45e6afbe17ae59fa6052c8d5..3dc11daabd5f60f03685825fb1faa500859c281b 100644 (file)
@@ -150,6 +150,8 @@ RELEASE 0.07 - Thu, 25 Apr 2002 06:24:50 -0500
 
   - Fix for using Aliases with the -u, -U and -D options.
 
+  - Fix so that Nodes can be passed to SConscript files.
+
   From Moshe Zadka:
   
   - Changes for official Debian packaging.
index 79e2a607e49c1e9ebbe100698b1427ef5b83235d..606be08f0d5acf5eb332c8943d7a0fcdbe8af56f 100644 (file)
@@ -158,7 +158,10 @@ def SConscript(*ls, **kw):
             if fn == "-":
                 exec sys.stdin in stack[-1].globals
             else:
-                f = SCons.Node.FS.default_fs.File(str(fn))
+               if isinstance(fn, SCons.Node.Node):
+                   f = fn
+               else:
+                   f = SCons.Node.FS.default_fs.File(str(fn))
                 if f.exists():
                     file = open(str(f), "r")
                     SCons.Node.FS.default_fs.chdir(f.dir)
index 893731cbc0d9c837b123c070bffe1b896c6d54a5..4b835a6bfc47c2adfc7d19bc597c49950f233d7c 100644 (file)
@@ -42,15 +42,20 @@ foo21 = test.workpath('build', 'var2', 'foo1' + _exe)
 foo22 = test.workpath('build', 'var2', 'foo2' + _exe)
 foo31 = test.workpath('build', 'var3', 'foo1' + _exe)
 foo32 = test.workpath('build', 'var3', 'foo2' + _exe)
+foo41 = test.workpath('build', 'var4', 'foo1' + _exe)
+foo42 = test.workpath('build', 'var4', 'foo2' + _exe)
 
 test.write('SConstruct', """
 src = Dir('src')
 var2 = Dir('build/var2')
 var3 = Dir('build/var3')
+var4 = Dir('build/var4')
+
 
 BuildDir('build/var1', src)
 BuildDir(var2, src)
 BuildDir(var3, src, duplicate=0)
+BuildDir(var4, src, duplicate=0)
 
 env = Environment(CPPPATH='#src')
 SConscript('build/var1/SConscript', "env")
@@ -58,6 +63,8 @@ SConscript('build/var2/SConscript', "env")
 
 env = Environment(CPPPATH=src)
 SConscript('build/var3/SConscript', "env")
+SConscript(File('SConscript', var4), "env")
+
 """) 
 
 test.subdir('src')
@@ -120,9 +127,16 @@ test.run(program = foo21, stdout = "f1.c\n")
 test.run(program = foo22, stdout = "f2.c\n")
 test.run(program = foo31, stdout = "f1.c\n")
 test.run(program = foo32, stdout = "f2.c\n")
+test.run(program = foo41, stdout = "f1.c\n")
+test.run(program = foo42, stdout = "f2.c\n")
 
 # Make sure we didn't duplicate the source files in build/var3.
 test.fail_test(os.path.exists(test.workpath('build', 'var3', 'f1.c')))
 test.fail_test(os.path.exists(test.workpath('build', 'var3', 'f2.in')))
 
+# Make sure we didn't duplicate the source files in build/var3.
+test.fail_test(os.path.exists(test.workpath('build', 'var4', 'f1.c')))
+test.fail_test(os.path.exists(test.workpath('build', 'var4', 'f2.in')))
+
+
 test.pass_test()