Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: mojo/tools/mojob.py

Issue 847863004: mojob.py: explicitly select CPU architecture. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Quotes Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | mojo/tools/mopy/config.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 # This a simple script to make building/testing Mojo components easier. 6 # This a simple script to make building/testing Mojo components easier.
7 7
8 import argparse 8 import argparse
9 from copy import deepcopy 9 from copy import deepcopy
10 import os 10 import os
11 import platform 11 import platform
12 import re 12 import re
13 import subprocess 13 import subprocess
14 import sys 14 import sys
15 15
16 from get_test_list import GetTestList 16 from get_test_list import GetTestList
17 from mopy.config import Config 17 from mopy.config import Config
18 from mopy.paths import Paths 18 from mopy.paths import Paths
19 19
20 20
21 def _args_to_config(args): 21 def _args_to_config(args):
22 # Default to host OS. 22 # Default to host OS.
23 target_os = None 23 target_os = None
24 if args.android: 24 if args.android:
25 target_os = Config.OS_ANDROID 25 target_os = Config.OS_ANDROID
26 elif args.chromeos: 26 elif args.chromeos:
27 target_os = Config.OS_CHROMEOS 27 target_os = Config.OS_CHROMEOS
28 28
29 if args.cpu_arch is None and args.android:
30 args.cpu_arch = 'arm'
31 target_arch = args.cpu_arch
32
29 additional_args = {} 33 additional_args = {}
30 34
31 if 'clang' in args: 35 if 'clang' in args:
32 additional_args['is_clang'] = args.clang 36 additional_args['is_clang'] = args.clang
33 37
34 if 'asan' in args and args.asan: 38 if 'asan' in args and args.asan:
35 additional_args['sanitizer'] = Config.SANITIZER_ASAN 39 additional_args['sanitizer'] = Config.SANITIZER_ASAN
36 40
37 # Additional non-standard config entries: 41 # Additional non-standard config entries:
38 42
39 if 'goma' in args: 43 if 'goma' in args:
40 goma_dir = os.environ.get('GOMA_DIR') 44 goma_dir = os.environ.get('GOMA_DIR')
41 goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma') 45 goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma')
42 if args.goma and goma_dir: 46 if args.goma and goma_dir:
43 additional_args['use_goma'] = True 47 additional_args['use_goma'] = True
44 additional_args['goma_dir'] = goma_dir 48 additional_args['goma_dir'] = goma_dir
45 elif args.goma and os.path.exists(goma_home_dir): 49 elif args.goma and os.path.exists(goma_home_dir):
46 additional_args['use_goma'] = True 50 additional_args['use_goma'] = True
47 additional_args['goma_dir'] = goma_home_dir 51 additional_args['goma_dir'] = goma_home_dir
48 else: 52 else:
49 additional_args['use_goma'] = False 53 additional_args['use_goma'] = False
50 additional_args['goma_dir'] = None 54 additional_args['goma_dir'] = None
51 55
52 if 'with_dart' in args: 56 if 'with_dart' in args:
53 additional_args['with_dart'] = args.with_dart 57 additional_args['with_dart'] = args.with_dart
54 58
55 if 'nacl' in args: 59 additional_args['use_nacl'] = args.nacl
56 additional_args['use_nacl'] = args.nacl
57 60
58 if 'dry_run' in args: 61 if 'dry_run' in args:
59 additional_args['dry_run'] = args.dry_run 62 additional_args['dry_run'] = args.dry_run
60 63
61 if 'builder_name' in args: 64 if 'builder_name' in args:
62 additional_args['builder_name'] = args.builder_name 65 additional_args['builder_name'] = args.builder_name
63 if 'build_number' in args: 66 if 'build_number' in args:
64 additional_args['build_number'] = args.build_number 67 additional_args['build_number'] = args.build_number
65 if 'master_name' in args: 68 if 'master_name' in args:
66 additional_args['master_name'] = args.master_name 69 additional_args['master_name'] = args.master_name
67 if 'test_results_server' in args: 70 if 'test_results_server' in args:
68 additional_args['test_results_server'] = args.test_results_server 71 additional_args['test_results_server'] = args.test_results_server
69 72
70 return Config(target_os=target_os, is_debug=args.debug, **additional_args) 73 return Config(target_os=target_os, target_arch=target_arch,
74 is_debug=args.debug, **additional_args)
71 75
72 76
73 def _get_out_dir(config): 77 def _get_out_dir(config):
74 paths = Paths(config) 78 paths = Paths(config)
75 return paths.SrcRelPath(paths.build_dir) 79 return paths.SrcRelPath(paths.build_dir)
76 80
77 81
78 def sync(config): 82 def sync(config):
79 # pylint: disable=W0613 83 # pylint: disable=W0613
80 return subprocess.call(['gclient', 'sync']) 84 return subprocess.call(['gclient', 'sync'])
(...skipping 19 matching lines...) Expand all
100 else: 104 else:
101 gn_args.append('use_goma=false') 105 gn_args.append('use_goma=false')
102 106
103 if config.values['with_dart']: 107 if config.values['with_dart']:
104 gn_args.append('mojo_use_dart=true') 108 gn_args.append('mojo_use_dart=true')
105 109
106 if config.values['use_nacl']: 110 if config.values['use_nacl']:
107 gn_args.append('mojo_use_nacl=true') 111 gn_args.append('mojo_use_nacl=true')
108 112
109 if config.target_os == Config.OS_ANDROID: 113 if config.target_os == Config.OS_ANDROID:
110 gn_args.append(r'''os=\"android\" cpu_arch=\"arm\"''') 114 gn_args.append(r'''os=\"android\"''')
111 elif config.target_os == Config.OS_CHROMEOS: 115 elif config.target_os == Config.OS_CHROMEOS:
112 gn_args.append(r'''os=\"chromeos\" ui_base_build_ime=false 116 gn_args.append(r'''os=\"chromeos\" ui_base_build_ime=false
113 use_system_harfbuzz=false''') 117 use_system_harfbuzz=false''')
114 118
119 gn_args.append(r'''cpu_arch=\"%s\"''' % config.target_arch)
120
115 out_dir = _get_out_dir(config) 121 out_dir = _get_out_dir(config)
116 command.append(out_dir) 122 command.append(out_dir)
117 command.append('--args="%s"' % ' '.join(gn_args)) 123 command.append('--args="%s"' % ' '.join(gn_args))
118 124
119 print 'Running %s ...' % ' '.join(command) 125 print 'Running %s ...' % ' '.join(command)
120 return subprocess.call(' '.join(command), shell=True) 126 return subprocess.call(' '.join(command), shell=True)
121 127
122 128
123 def _get_gn_arg_value(out_dir, arg): 129 def _get_gn_arg_value(out_dir, arg):
124 args_file_path = os.path.join(out_dir, 'args.gn') 130 args_file_path = os.path.join(out_dir, 'args.gn')
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 default=True, action='store_true') 210 default=True, action='store_true')
205 debug_group.add_argument('--release', help='Release build', default=False, 211 debug_group.add_argument('--release', help='Release build', default=False,
206 dest='debug', action='store_false') 212 dest='debug', action='store_false')
207 213
208 os_group = parent_parser.add_mutually_exclusive_group() 214 os_group = parent_parser.add_mutually_exclusive_group()
209 os_group.add_argument('--android', help='Build for Android', 215 os_group.add_argument('--android', help='Build for Android',
210 action='store_true') 216 action='store_true')
211 os_group.add_argument('--chromeos', help='Build for ChromeOS', 217 os_group.add_argument('--chromeos', help='Build for ChromeOS',
212 action='store_true') 218 action='store_true')
213 219
220 parent_parser.add_argument('--cpu-arch',
221 help='CPU architecture to build for.',
222 choices=['x64', 'x86', 'arm'])
223
224 parent_parser.add_argument('--nacl', help='Add in NaCl', default=False,
225 action='store_true')
226
214 subparsers = parser.add_subparsers() 227 subparsers = parser.add_subparsers()
215 228
216 sync_parser = subparsers.add_parser('sync', parents=[parent_parser], 229 sync_parser = subparsers.add_parser('sync', parents=[parent_parser],
217 help='Sync using gclient (does not run gn).') 230 help='Sync using gclient (does not run gn).')
218 sync_parser.set_defaults(func=sync) 231 sync_parser.set_defaults(func=sync)
219 232
220 gn_parser = subparsers.add_parser('gn', parents=[parent_parser], 233 gn_parser = subparsers.add_parser('gn', parents=[parent_parser],
221 help='Run gn for mojo (does not sync).') 234 help='Run gn for mojo (does not sync).')
222 gn_parser.set_defaults(func=gn) 235 gn_parser.set_defaults(func=gn)
223 gn_parser.add_argument('--with-dart', help='Configure the Dart bindings', 236 gn_parser.add_argument('--with-dart', help='Configure the Dart bindings',
224 action='store_true') 237 action='store_true')
225 gn_parser.add_argument('--nacl', help='Add in NaCl', action='store_true')
226 clang_group = gn_parser.add_mutually_exclusive_group() 238 clang_group = gn_parser.add_mutually_exclusive_group()
227 clang_group.add_argument('--clang', help='Use Clang (default)', default=None, 239 clang_group.add_argument('--clang', help='Use Clang (default)', default=None,
228 action='store_true') 240 action='store_true')
229 clang_group.add_argument('--gcc', help='Use GCC', 241 clang_group.add_argument('--gcc', help='Use GCC',
230 dest='clang', action='store_false') 242 dest='clang', action='store_false')
231 goma_group = gn_parser.add_mutually_exclusive_group() 243 goma_group = gn_parser.add_mutually_exclusive_group()
232 goma_group.add_argument('--goma', 244 goma_group.add_argument('--goma',
233 help='Use Goma (if $GOMA_DIR is set or $HOME/goma ' 245 help='Use Goma (if $GOMA_DIR is set or $HOME/goma '
234 'exists; default)', 246 'exists; default)',
235 default=True, 247 default=True,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 help='Run Dart unit tests (does not build).') 283 help='Run Dart unit tests (does not build).')
272 darttest_parser.set_defaults(func=darttest) 284 darttest_parser.set_defaults(func=darttest)
273 285
274 args = parser.parse_args() 286 args = parser.parse_args()
275 config = _args_to_config(args) 287 config = _args_to_config(args)
276 return args.func(config) 288 return args.func(config)
277 289
278 290
279 if __name__ == '__main__': 291 if __name__ == '__main__':
280 sys.exit(main()) 292 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | mojo/tools/mopy/config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698