Make Default() accept a node
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 17 Dec 2001 05:36:08 +0000 (05:36 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 17 Dec 2001 05:36:08 +0000 (05:36 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@161 fdb21ef1-2011-0410-befe-b5e4ea1792b1

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

index 23a7da7bd16dd3ed199845acdfdc3a5b093383b5..953c9e65f34c90c6e5e106e09c5cbebab7e6fff4 100644 (file)
@@ -23,6 +23,8 @@ RELEASE 0.02 -
 
   - 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
index 086e470cf10a83dee4512d58faa0c0df7b238dbf..15abb48e872fbe56e46b2f31b4489922358a3fff 100644 (file)
@@ -166,8 +166,11 @@ def SConscript(sconscript, export={}):
 
 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
@@ -648,8 +651,14 @@ def _main():
 
     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)
index ceab745a7e84691ddff7fca77cc9333077a24584..135d7cb79492a80a77bde3c7c38ea70759942dd1 100644 (file)
@@ -32,7 +32,7 @@ python = sys.executable
 
 test = TestSCons.TestSCons()
 
-test.subdir('one', 'two', 'three')
+test.subdir('one', 'two', 'three', 'four')
 
 test.write('build.py', r"""
 import sys
@@ -66,7 +66,15 @@ env.B(target = 'bar.out', source = 'bar.in')
 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')
@@ -86,4 +94,8 @@ test.fail_test(test.read(test.workpath('two', 'bar.out')) != "two/bar.in\n")
 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()