Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import multiprocessing | 6 import multiprocessing |
| 7 import optparse | 7 import argparse |
|
binji
2014/11/13 23:57:01
sort
Sam Clegg
2014/11/30 17:55:11
Done.
| |
| 8 import os | 8 import os |
| 9 import posixpath | 9 import posixpath |
| 10 import sys | 10 import sys |
| 11 import urllib2 | 11 import urllib2 |
| 12 | 12 |
| 13 import buildbot_common | 13 import buildbot_common |
| 14 import build_version | 14 import build_version |
| 15 import generate_make | 15 import generate_make |
| 16 import parse_dsc | 16 import parse_dsc |
| 17 | 17 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 236 clean=False, config='Debug'): | 236 clean=False, config='Debug'): |
| 237 # Make sure we build libraries (which live in 'src') before | 237 # Make sure we build libraries (which live in 'src') before |
| 238 # any of the examples. | 238 # any of the examples. |
| 239 build_first = [p for p in project_tree if p != 'src'] | 239 build_first = [p for p in project_tree if p != 'src'] |
| 240 build_second = [p for p in project_tree if p == 'src'] | 240 build_second = [p for p in project_tree if p == 'src'] |
| 241 | 241 |
| 242 for branch in build_first + build_second: | 242 for branch in build_first + build_second: |
| 243 BuildProjectsBranch(pepperdir, branch, deps, clean, config) | 243 BuildProjectsBranch(pepperdir, branch, deps, clean, config) |
| 244 | 244 |
| 245 | 245 |
| 246 def main(argv): | 246 def main(args): |
| 247 parser = optparse.OptionParser() | 247 parser = argparse.ArgumentParser(description=__doc__) |
| 248 parser.add_option('-c', '--clobber', | 248 parser.add_argument('-c', '--clobber', |
| 249 help='Clobber project directories before copying new files', | 249 help='Clobber project directories before copying new files', |
| 250 action='store_true', default=False) | 250 action='store_true', default=False) |
| 251 parser.add_option('-b', '--build', | 251 parser.add_argument('-b', '--build', |
| 252 help='Build the projects. Otherwise the projects are only copied.', | 252 help='Build the projects. Otherwise the projects are only copied.', |
| 253 action='store_true') | 253 action='store_true') |
| 254 parser.add_option('--config', | 254 parser.add_argument('--config', |
| 255 help='Choose configuration to build (Debug or Release). Builds both ' | 255 help='Choose configuration to build (Debug or Release). Builds both ' |
| 256 'by default') | 256 'by default') |
| 257 parser.add_option('--bionic', | 257 parser.add_argument('--bionic', |
| 258 help='Enable bionic projects', action='store_true') | 258 help='Enable bionic projects', action='store_true') |
| 259 parser.add_option('-x', '--experimental', | 259 parser.add_argument('-x', '--experimental', |
| 260 help='Build experimental projects', action='store_true') | 260 help='Build experimental projects', action='store_true') |
| 261 parser.add_option('-t', '--toolchain', | 261 parser.add_argument('-t', '--toolchain', |
| 262 help='Build using toolchain. Can be passed more than once.', | 262 help='Build using toolchain. Can be passed more than once.', |
| 263 action='append', default=[]) | 263 action='append', default=[]) |
| 264 parser.add_option('-d', '--dest', | 264 parser.add_argument('-d', '--dest', |
| 265 help='Select which build destinations (project types) are valid.', | 265 help='Select which build destinations (project types) are valid.', |
| 266 action='append') | 266 action='append') |
| 267 parser.add_option('-v', '--verbose', action='store_true') | 267 parser.add_argument('projects', nargs='*', |
| 268 help='Select which projects to build.') | |
| 269 parser.add_argument('-v', '--verbose', action='store_true') | |
| 268 | 270 |
| 269 # To setup bash completion for this command first install optcomplete | 271 # To setup bash completion for this command first install optcomplete |
| 270 # and then add this line to your .bashrc: | 272 # and then add this line to your .bashrc: |
| 271 # complete -F _optcomplete build_projects.py | 273 # complete -F _optcomplete build_projects.py |
| 272 try: | 274 try: |
| 273 import optcomplete | 275 import optcomplete |
| 274 optcomplete.autocomplete(parser) | 276 optcomplete.autocomplete(parser) |
| 275 except ImportError: | 277 except ImportError: |
| 276 pass | 278 pass |
| 277 | 279 |
| 278 options, args = parser.parse_args(argv[1:]) | 280 options = parser.parse_args(args) |
| 279 | 281 |
| 280 global verbose | 282 global verbose |
| 281 if options.verbose: | 283 if options.verbose: |
| 282 verbose = True | 284 verbose = True |
| 283 | 285 |
| 284 buildbot_common.verbose = verbose | 286 buildbot_common.verbose = verbose |
| 285 | 287 |
| 286 if 'NACL_SDK_ROOT' in os.environ: | 288 if 'NACL_SDK_ROOT' in os.environ: |
| 287 # We don't want the currently configured NACL_SDK_ROOT to have any effect | 289 # We don't want the currently configured NACL_SDK_ROOT to have any effect |
| 288 # on the build. | 290 # on the build. |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 309 | 311 |
| 310 filters = {} | 312 filters = {} |
| 311 if options.toolchain: | 313 if options.toolchain: |
| 312 filters['TOOLS'] = options.toolchain | 314 filters['TOOLS'] = options.toolchain |
| 313 Trace('Filter by toolchain: ' + str(options.toolchain)) | 315 Trace('Filter by toolchain: ' + str(options.toolchain)) |
| 314 if not options.experimental: | 316 if not options.experimental: |
| 315 filters['EXPERIMENTAL'] = False | 317 filters['EXPERIMENTAL'] = False |
| 316 if options.dest: | 318 if options.dest: |
| 317 filters['DEST'] = options.dest | 319 filters['DEST'] = options.dest |
| 318 Trace('Filter by type: ' + str(options.dest)) | 320 Trace('Filter by type: ' + str(options.dest)) |
| 319 if args: | 321 if options.projects: |
| 320 filters['NAME'] = args | 322 filters['NAME'] = options.projects |
| 321 Trace('Filter by name: ' + str(args)) | 323 Trace('Filter by name: ' + str(options.projects)) |
| 322 | 324 |
| 323 try: | 325 try: |
| 324 project_tree = parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=filters) | 326 project_tree = parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=filters) |
| 325 except parse_dsc.ValidationError as e: | 327 except parse_dsc.ValidationError as e: |
| 326 buildbot_common.ErrorExit(str(e)) | 328 buildbot_common.ErrorExit(str(e)) |
| 327 | 329 |
| 328 if verbose: | 330 if verbose: |
| 329 parse_dsc.PrintProjectTree(project_tree) | 331 parse_dsc.PrintProjectTree(project_tree) |
| 330 | 332 |
| 331 UpdateHelpers(pepperdir, clobber=options.clobber) | 333 UpdateHelpers(pepperdir, clobber=options.clobber) |
| 332 UpdateProjects(pepperdir, project_tree, options.toolchain, | 334 UpdateProjects(pepperdir, project_tree, options.toolchain, |
| 333 clobber=options.clobber) | 335 clobber=options.clobber) |
| 334 | 336 |
| 335 if options.build: | 337 if options.build: |
| 336 if options.config: | 338 if options.config: |
| 337 configs = [options.config] | 339 configs = [options.config] |
| 338 else: | 340 else: |
| 339 configs = ['Debug', 'Release'] | 341 configs = ['Debug', 'Release'] |
| 340 for config in configs: | 342 for config in configs: |
| 341 BuildProjects(pepperdir, project_tree, config=config, deps=False) | 343 BuildProjects(pepperdir, project_tree, config=config, deps=False) |
| 342 | 344 |
| 343 return 0 | 345 return 0 |
| 344 | 346 |
| 345 | 347 |
| 346 if __name__ == '__main__': | 348 if __name__ == '__main__': |
| 347 script_name = os.path.basename(sys.argv[0]) | 349 script_name = os.path.basename(sys.argv[0]) |
| 348 try: | 350 try: |
| 349 sys.exit(main(sys.argv)) | 351 sys.exit(main(sys.argv[1:])) |
| 350 except parse_dsc.ValidationError as e: | 352 except parse_dsc.ValidationError as e: |
| 351 buildbot_common.ErrorExit('%s: %s' % (script_name, e)) | 353 buildbot_common.ErrorExit('%s: %s' % (script_name, e)) |
| 352 except KeyboardInterrupt: | 354 except KeyboardInterrupt: |
| 353 buildbot_common.ErrorExit('%s: interrupted' % script_name) | 355 buildbot_common.ErrorExit('%s: interrupted' % script_name) |
| OLD | NEW |