Fix -U when no Default() targets are specified.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 23 Mar 2003 05:45:01 +0000 (05:45 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 23 Mar 2003 05:45:01 +0000 (05:45 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@620 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Script/__init__.py
test/option--U.py

index 83d654453ec0377f239eb8a8ddbce4d0234e94ba..017c872f6c8bd3da4098881a19d8eb1bf05ea96d 100644 (file)
@@ -80,6 +80,9 @@ RELEASE 0.12 - XXX
   - Change the default SConscriptChdir() behavior to change to the
     SConscript directory while it's being read.
 
+  - Fix an exception thrown when the -U option was used with no
+    Default() target specified.
+
   From Lachlan O'Dea:
 
   - Add SharedObject() support to the masm tool.
index 760f2076ad96ceea9c5e5f30482f98f2f2cb0bd1..60d299d22c9145374bd9cbedfa1d05eb4cc65f00 100644 (file)
@@ -823,7 +823,10 @@ def _main():
                     # or not a file, so go ahead and keep it as a default
                     # target and let the engine sort it out:
                     return 1                
-            default_targets = filter(check_dir, default_targets)
+            if default_targets is None:
+                default_targets = []
+            else:
+                default_targets = filter(check_dir, default_targets)
             SCons.Script.SConscript.default_targets = default_targets
             target_top = None
 
index 8abe7b9836bdf4d847764d917103129c2243b6b8..f5a7b748707432d31647e712c5f5f67d4d10700a 100644 (file)
@@ -85,7 +85,10 @@ test.fail_test(os.path.exists(test.workpath('sub2/xxx.out')))
 test.unlink(['sub1', 'foo.out'])
 
 test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath('sub1'))
-test.run(arguments = '-U', chdir = 'sub1', stderr = None, status = 2)
+test.run(arguments = '-U',
+         chdir = 'sub1',
+         stderr = "scons: *** No targets specified and no Default() targets found.  Stop.\n",
+         status = 2)
 test.fail_test(os.path.exists(test.workpath('sub1', 'foo.out')))
 test.fail_test(os.path.exists(test.workpath('sub2', 'bar.out')))
 test.fail_test(os.path.exists(test.workpath('sub2b', 'bar.out')))
@@ -133,7 +136,6 @@ test.fail_test(os.path.exists(test.workpath('sub3', 'baz.out')))
 test.fail_test(os.path.exists(test.workpath('bar.out')))
 test.fail_test(os.path.exists(test.workpath('sub2/xxx.out')))
 
-
 # Make sure that a Default() directory doesn't cause an exception.
 test.subdir('sub4')
 
@@ -143,6 +145,17 @@ Default('.')
 
 test.run(chdir = 'sub4', arguments = '-U')
 
+# Make sure no Default() targets doesn't cause an exception.
+test.subdir('sub5')
+
+test.write(['sub5', 'SConstruct'], "\n")
+
+test.run(chdir = 'sub5',
+         arguments = '-U',
+         stderr = "scons: *** No targets specified and no Default() targets found.  Stop.\n",
+         status = 2)
+
+#
 test.write('SConstruct', """
 Default('not_a_target.in')
 """)