Make the Default() method accomodate targets with white space in the file name.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 12 Jan 2002 19:17:54 +0000 (19:17 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 12 Jan 2002 19:17:54 +0000 (19:17 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@205 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/man/scons.1
src/CHANGES.txt
src/engine/SCons/Script/SConscript.py
test/Default.py

index 3f4af0690b00f9bfcd19073f105a2ef168a90999..49c2e21a89922c79a29fc85b567fcd1bb9fef9c4 100644 (file)
@@ -925,6 +925,9 @@ This specifies a list of default targets. Default targets will be built by
 if no explicit targets are given on the comamnd line. Multiple targets can
 be specified either as a space delimited string of target file names or as
 seperate arguments.
+Target names with white space may be be enclosed in an
+array to prevent the string from being split into
+separate file names.
 .BR Default ()
 will also accept the return value of any of the ccnstruction environment
 builder methods.
@@ -932,7 +935,7 @@ Example:
 
 .IP
 .nf
-Default('foo', 'bar', 'baz')
+Default('foo', 'bar', 'baz', ['file with whitespace'])
 .PP
 .fi
 
index e36ceb609039e93e9abf86cbc43c5bbacef383ae..c598b1cf22d047bd5fc4f6a1cee8298fa575763c 100644 (file)
@@ -12,7 +12,8 @@ RELEASE 0.04 -
 
   From Steven Knight:
 
-  - Fix using a directory as a Default().
+  - Fix using a directory as a Default(), and allow Default() to
+    support white space in file names for strings in arrays.
 
 
 
index 43868b530ab549e658364859301bc2de31b477b0..4208ebaabf64a660457e905bb1fa993c7a031c03 100644 (file)
@@ -115,8 +115,8 @@ def Default(*targets):
         if isinstance(t, SCons.Node.Node):
             default_targets.append(t)
         else:
-            for s in string.split(t):
-                default_targets.append(SCons.Node.FS.default_fs.Entry(s))
+            default_targets.extend(SCons.Util.scons_str2nodes(t,
+                                         SCons.Node.FS.default_fs.Entry))
 
 def Help(text):
     if print_help:
index 1d868292eb5228cdf58b359fc92bc6cce7d0abbc..a03ff4b9635760d6ad4ad4c2501255cbfab93e36 100644 (file)
@@ -32,7 +32,7 @@ python = sys.executable
 
 test = TestSCons.TestSCons()
 
-test.subdir('one', 'two', 'three', 'four')
+test.subdir('one', 'two', 'three', 'four', 'five')
 
 test.write('build.py', r"""
 import sys
@@ -69,12 +69,21 @@ Default('foo.out bar.out')
 test.write(['four', 'SConstruct'], """
 B = Builder(name = 'B', action = r'%s ../build.py $TARGET $SOURCES')
 env = Environment(BUILDERS = [B])
+env.B(target = ['foo bar'], source = 'foo.in')
+env.B(target = 'foo', source = 'foo.in')
+env.B(target = 'bar', source = 'bar.in')
+Default(['foo bar'])
+""" % python)
+
+test.write(['five', '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']:
+for dir in ['one', 'two', 'three', 'four', 'five']:
 
     foo_in = os.path.join(dir, 'foo.in')
     bar_in = os.path.join(dir, 'bar.in')
@@ -94,8 +103,12 @@ 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.fail_test(os.path.exists(test.workpath('four', 'foo')))
+test.fail_test(os.path.exists(test.workpath('four', 'bar')))
+test.fail_test(test.read(test.workpath('four', 'foo bar')) != "four/foo.in\n")
+
+test.fail_test(test.read(test.workpath('five', 'foo.out')) != "five/foo.in\n")
+test.fail_test(test.read(test.workpath('five', 'bar.out')) != "five/bar.in\n")