Allow modification of BUILD_TARGETS from with SConscript files. (Stanislav Baranov)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 13 Aug 2005 20:44:44 +0000 (20:44 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 13 Aug 2005 20:44:44 +0000 (20:44 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1331 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Script/Main.py
test/TARGETS.py

index e575de329a49ec79473d8da1e9217bd2bac2406f..9d2e23515080f3c1a06020212d2c9de58b6bcb49 100644 (file)
@@ -44,6 +44,8 @@ RELEASE 0.97 - XXX
 
   - Allow access to both TARGET and SOURCE in $*PATH expansions.
 
+  - Allow SConscript files to modify BUILD_TARGETS.
+
   From Timothee Besset:
 
   - Add support for Objective C/C++ .m and .mm file suffixes (for
index c41587cc9ebbc8d03b9a2b49e5e0f46daf118e2b..81562085ae5a2e5713b718063382d4d8e9a59571 100644 (file)
@@ -1080,13 +1080,15 @@ def _main(args, parser):
     fs.set_max_drift(ssoptions.get('max_drift'))
 
     lookup_top = None
-    if targets:
+    if SCons.Script.BUILD_TARGETS:
         # They specified targets on the command line, so if they
         # used -u, -U or -D, we have to look up targets relative
         # to the top, but we build whatever they specified.
         if target_top:
             lookup_top = fs.Dir(target_top)
             target_top = None
+
+        targets = SCons.Script.BUILD_TARGETS
     else:
         # There are no targets specified on the command line,
         # so if they used -u, -U or -D, we may have to restrict
index 5c73d81ba7222c41ed6d203792e1370b1257e9a2..d2520d5711ee3ee38a0902bda4873c079692e642 100644 (file)
@@ -32,6 +32,8 @@ import TestSCons
 
 test = TestSCons.TestSCons()
 
+
+
 test.write('SConstruct', """
 print COMMAND_LINE_TARGETS
 print map(str, BUILD_TARGETS)
@@ -62,6 +64,8 @@ scons: Nothing to be done for `aaa'.
 """)
 test.run(arguments = 'bbb ccc=xyz -n aaa', stdout = expect)
 
+
+
 test.write('SConstruct', """
 env = Environment()
 print map(str, DEFAULT_TARGETS)
@@ -106,4 +110,31 @@ expect = test.wrap_stdout(build_str = "scons: `.' is up to date.\n",
 """)
 test.run(arguments = '.', stdout = expect)
 
+
+
+test.write('SConstruct', """\
+print map(str, BUILD_TARGETS)
+SConscript('SConscript')
+print map(str, BUILD_TARGETS)
+""")
+
+test.write('SConscript', """\
+BUILD_TARGETS.append('sconscript_target')
+""")
+
+test.write('command_line_target', "command_line_target\n")
+test.write('sconscript_target', "sconscript_target\n")
+
+expect = test.wrap_stdout(read_str = """\
+['command_line_target']
+['command_line_target', 'sconscript_target']
+""",
+                          build_str = """\
+scons: Nothing to be done for `command_line_target'.
+scons: Nothing to be done for `sconscript_target'.
+""")
+test.run(arguments = 'command_line_target', stdout = expect)
+
+
+
 test.pass_test()