Anonymous avatar Anonymous committed fe61c89

Allow modification of BUILD_TARGETS from with SConscript files. (Stanislav Baranov)

Comments (0)

Files changed (3)

 
   - 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

src/engine/SCons/Script/Main.py

     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
 
 test = TestSCons.TestSCons()
 
+
+
 test.write('SConstruct', """
 print COMMAND_LINE_TARGETS
 print map(str, BUILD_TARGETS)
 """)
 test.run(arguments = 'bbb ccc=xyz -n aaa', stdout = expect)
 
+
+
 test.write('SConstruct', """
 env = Environment()
 print map(str, DEFAULT_TARGETS)
 """)
 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()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.