| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
| 5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
| 6 # | 6 # |
| 7 | 7 |
| 8 import optparse | |
| 9 import shutil | 8 import shutil |
| 10 import sys | 9 import sys |
| 11 import utils | 10 import utils |
| 12 | 11 |
| 13 HOST_OS = utils.GuessOS() | |
| 14 | |
| 15 def BuildOptions(): | |
| 16 result = optparse.OptionParser() | |
| 17 result.add_option("-m", "--mode", | |
| 18 help='Build variants (comma-separated).', | |
| 19 metavar='[all,debug,release]', | |
| 20 default='all') | |
| 21 result.add_option("--arch", | |
| 22 help='Target architectures (comma-separated).', | |
| 23 metavar='[all,ia32,x64,simarm,arm]', | |
| 24 default='all') | |
| 25 result.add_option("--os", | |
| 26 help='Target OSs (comma-separated).', | |
| 27 metavar='[all,host,android]', | |
| 28 default='all') | |
| 29 return result | |
| 30 | |
| 31 | |
| 32 def ProcessOsOption(os): | |
| 33 if os == 'host': | |
| 34 return HOST_OS | |
| 35 return os | |
| 36 | |
| 37 | |
| 38 def ProcessOptions(options): | |
| 39 if options.arch == 'all': | |
| 40 options.arch = 'ia32,x64' | |
| 41 if options.mode == 'all': | |
| 42 options.mode = 'release,debug' | |
| 43 if options.os == 'all': | |
| 44 options.os = 'host,android' | |
| 45 options.mode = options.mode.split(',') | |
| 46 options.arch = options.arch.split(',') | |
| 47 options.os = options.os.split(',') | |
| 48 for mode in options.mode: | |
| 49 if not mode in ['debug', 'release']: | |
| 50 print "Unknown mode %s" % mode | |
| 51 return False | |
| 52 for arch in options.arch: | |
| 53 if not arch in ['ia32', 'x64', 'simarm', 'arm']: | |
| 54 print "Unknown arch %s" % arch | |
| 55 return False | |
| 56 options.os = [ProcessOsOption(os) for os in options.os] | |
| 57 for os in options.os: | |
| 58 if not os in ['android', 'freebsd', 'linux', 'macos', 'win32']: | |
| 59 print "Unknown os %s" % os | |
| 60 return False | |
| 61 return True | |
| 62 | |
| 63 def Main(): | 12 def Main(): |
| 64 parser = BuildOptions() | 13 build_root = utils.GetBuildRoot(utils.GuessOS()) |
| 65 (options, args) = parser.parse_args() | |
| 66 if not ProcessOptions(options): | |
| 67 parser.print_help() | |
| 68 return 1 | |
| 69 | |
| 70 build_root = utils.GetBuildDir(HOST_OS, None) | |
| 71 shutil.rmtree(build_root, ignore_errors=True) | 14 shutil.rmtree(build_root, ignore_errors=True) |
| 72 return 0 | 15 return 0 |
| 73 | 16 |
| 74 if __name__ == '__main__': | 17 if __name__ == '__main__': |
| 75 sys.exit(Main()) | 18 sys.exit(Main()) |
| OLD | NEW |