Commits

Anonymous committed cb4305f

Make Default() accept a node

Comments (0)

Files changed (3)

 
   - Fixed SCONS_LIB_DIR to work as documented (courtesy Anthony Roach).
 
+  - Made Default() accept Nodes as arguments (courtesy Anthony Roach).
+
 
 
 RELEASE 0.01 - Thu Dec 13 19:25:23 CST 2001

src/engine/SCons/Script.py

 
 def Default(*targets):
     for t in targets:
-	for s in string.split(t):
-	    default_targets.append(s)
+	if isinstance(t, SCons.Node.Node):
+	    default_targets.append(t)
+	else:
+	    for s in string.split(t):
+		default_targets.append(s)
 
 def Help(text):
     global help_option
 
     if not targets:
 	targets = default_targets
-
-    nodes = map(lambda x: SCons.Node.FS.default_fs.Entry(x), targets)
+	
+    def Entry(x):
+	if isinstance(x, SCons.Node.Node):
+	    return x
+	else:
+	    return SCons.Node.FS.default_fs.Entry(x)
+	
+    nodes = map(Entry, targets)
 
     if not calc:
         calc = SCons.Sig.Calculator(SCons.Sig.MD5)
 
 test = TestSCons.TestSCons()
 
-test.subdir('one', 'two', 'three')
+test.subdir('one', 'two', 'three', 'four')
 
 test.write('build.py', r"""
 import sys
 Default('foo.out bar.out')
 """ % python)
 
-for dir in ['one', 'two', 'three']:
+test.write(['four', 'SConstruct'], """
+B = Builder(name = 'B', action = r'%s ../build.py $TARGET $SOURCES')
+env = Environment(BUILDERS = [B])
+Default(env.B(target = 'foo.out', source = 'foo.in'))
+Default(env.B(target = 'bar.out', source = 'bar.in'))
+""" % python)
+
+
+for dir in ['one', 'two', 'three', 'four']:
 
     foo_in = os.path.join(dir, 'foo.in')
     bar_in = os.path.join(dir, 'bar.in')
 test.fail_test(test.read(test.workpath('three', 'foo.out')) != "three/foo.in\n")
 test.fail_test(test.read(test.workpath('three', 'bar.out')) != "three/bar.in\n")
 
+test.fail_test(test.read(test.workpath('four', 'foo.out')) != "four/foo.in\n")
+test.fail_test(test.read(test.workpath('four', 'bar.out')) != "four/bar.in\n")
+
+
 test.pass_test()