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

Side by Side Diff: tools/gn.py

Issue 2848943003: [infra] Assembles the SDK using GN rather than create_sdk.py (Closed)
Patch Set: Move copy_dev_compiler_tools out of the default full SDK build Created 3 years, 7 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 | « tools/create_sdk.py ('k') | no next file » | 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 2016 The Dart project authors. All rights reserved. 2 # Copyright 2016 The Dart project 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 argparse 6 import argparse
7 import multiprocessing 7 import multiprocessing
8 import os 8 import os
9 import shutil 9 import shutil
10 import subprocess 10 import subprocess
11 import sys 11 import sys
12 import time 12 import time
13 import utils 13 import utils
14 14
15 HOST_OS = utils.GuessOS() 15 HOST_OS = utils.GuessOS()
16 HOST_ARCH = utils.GuessArchitecture() 16 HOST_ARCH = utils.GuessArchitecture()
17 SCRIPT_DIR = os.path.dirname(sys.argv[0]) 17 SCRIPT_DIR = os.path.dirname(sys.argv[0])
18 DART_ROOT = os.path.realpath(os.path.join(SCRIPT_DIR, '..')) 18 DART_ROOT = os.path.realpath(os.path.join(SCRIPT_DIR, '..'))
19 GN = os.path.join(DART_ROOT, 'buildtools', 'gn') 19 GN = os.path.join(DART_ROOT, 'buildtools', 'gn')
20 20
21 # Environment variables for default settings. 21 # Environment variables for default settings.
22 DART_USE_ASAN = "DART_USE_ASAN" # Use instead of --asan 22 DART_USE_ASAN = "DART_USE_ASAN" # Use instead of --asan
23 DART_USE_MSAN = "DART_USE_MSAN" # Use instead of --msan 23 DART_USE_MSAN = "DART_USE_MSAN" # Use instead of --msan
24 DART_USE_TSAN = "DART_USE_TSAN" # Use instead of --tsan 24 DART_USE_TSAN = "DART_USE_TSAN" # Use instead of --tsan
25 DART_USE_WHEEZY = "DART_USE_WHEEZY" # Use instread of --wheezy 25 DART_USE_WHEEZY = "DART_USE_WHEEZY" # Use instread of --wheezy
26 DART_USE_TOOLCHAIN = "DART_USE_TOOLCHAIN" # Use instread of --toolchain-prefix 26 DART_USE_TOOLCHAIN = "DART_USE_TOOLCHAIN" # Use instread of --toolchain-prefix
27 DART_USE_SYSROOT = "DART_USE_SYSROOT" # Use instead of --target-sysroot 27 DART_USE_SYSROOT = "DART_USE_SYSROOT" # Use instead of --target-sysroot
28 # use instead of --platform-sdk
29 DART_MAKE_PLATFORM_SDK = "DART_MAKE_PLATFORM_SDK"
28 30
29 def UseASAN(): 31 def UseASAN():
30 return DART_USE_ASAN in os.environ 32 return DART_USE_ASAN in os.environ
31 33
32 34
33 def UseMSAN(): 35 def UseMSAN():
34 return DART_USE_MSAN in os.environ 36 return DART_USE_MSAN in os.environ
35 37
36 38
37 def UseTSAN(): 39 def UseTSAN():
38 return DART_USE_TSAN in os.environ 40 return DART_USE_TSAN in os.environ
39 41
40 42
41 def UseWheezy(): 43 def UseWheezy():
42 return DART_USE_WHEEZY in os.environ 44 return DART_USE_WHEEZY in os.environ
43 45
44 46
45 def ToolchainPrefix(args): 47 def ToolchainPrefix(args):
46 if args.toolchain_prefix: 48 if args.toolchain_prefix:
47 return args.toolchain_prefix 49 return args.toolchain_prefix
48 return os.environ.get(DART_USE_TOOLCHAIN) 50 return os.environ.get(DART_USE_TOOLCHAIN)
49 51
50 52
51 def TargetSysroot(args): 53 def TargetSysroot(args):
52 if args.target_sysroot: 54 if args.target_sysroot:
53 return args.target_sysroot 55 return args.target_sysroot
54 return os.environ.get(DART_USE_SYSROOT) 56 return os.environ.get(DART_USE_SYSROOT)
55 57
56 58
59 def MakePlatformSDK():
60 return DART_MAKE_PLATFORM_SDK in os.environ
61
62
57 def GetOutDir(mode, arch, target_os): 63 def GetOutDir(mode, arch, target_os):
58 return utils.GetBuildRoot(HOST_OS, mode, arch, target_os) 64 return utils.GetBuildRoot(HOST_OS, mode, arch, target_os)
59 65
60 66
61 def ToCommandLine(gn_args): 67 def ToCommandLine(gn_args):
62 def merge(key, value): 68 def merge(key, value):
63 if type(value) is bool: 69 if type(value) is bool:
64 return '%s=%s' % (key, 'true' if value else 'false') 70 return '%s=%s' % (key, 'true' if value else 'false')
65 return '%s="%s"' % (key, value) 71 return '%s="%s"' % (key, value)
66 return [merge(x, y) for x, y in gn_args.iteritems()] 72 return [merge(x, y) for x, y in gn_args.iteritems()]
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 196
191 dont_use_clang = DontUseClang(args, gn_args['target_os'], 197 dont_use_clang = DontUseClang(args, gn_args['target_os'],
192 gn_args['host_cpu'], 198 gn_args['host_cpu'],
193 gn_args['target_cpu']) 199 gn_args['target_cpu'])
194 gn_args['is_clang'] = args.clang and not dont_use_clang 200 gn_args['is_clang'] = args.clang and not dont_use_clang
195 201
196 gn_args['is_asan'] = args.asan and gn_args['is_clang'] 202 gn_args['is_asan'] = args.asan and gn_args['is_clang']
197 gn_args['is_msan'] = args.msan and gn_args['is_clang'] 203 gn_args['is_msan'] = args.msan and gn_args['is_clang']
198 gn_args['is_tsan'] = args.tsan and gn_args['is_clang'] 204 gn_args['is_tsan'] = args.tsan and gn_args['is_clang']
199 205
206 gn_args['dart_platform_sdk'] = args.platform_sdk
207
200 # Setup the user-defined sysroot. 208 # Setup the user-defined sysroot.
201 if gn_args['target_os'] == 'linux' and args.wheezy and not crossbuild: 209 if gn_args['target_os'] == 'linux' and args.wheezy and not crossbuild:
202 gn_args['dart_use_wheezy_sysroot'] = True 210 gn_args['dart_use_wheezy_sysroot'] = True
203 else: 211 else:
204 sysroot = TargetSysroot(args) 212 sysroot = TargetSysroot(args)
205 if sysroot: 213 if sysroot:
206 gn_args['target_sysroot'] = ParseStringMap(arch, sysroot) 214 gn_args['target_sysroot'] = ParseStringMap(arch, sysroot)
207 215
208 toolchain = ToolchainPrefix(args) 216 toolchain = ToolchainPrefix(args)
209 if toolchain: 217 if toolchain:
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 default=os_has_ide(HOST_OS), 358 default=os_has_ide(HOST_OS),
351 action='store_true') 359 action='store_true')
352 other_group.add_argument('--msan', 360 other_group.add_argument('--msan',
353 help='Build with MSAN', 361 help='Build with MSAN',
354 default=UseMSAN(), 362 default=UseMSAN(),
355 action='store_true') 363 action='store_true')
356 other_group.add_argument('--no-msan', 364 other_group.add_argument('--no-msan',
357 help='Disable MSAN', 365 help='Disable MSAN',
358 dest='msan', 366 dest='msan',
359 action='store_false') 367 action='store_false')
368 other_group.add_argument('--platform-sdk',
369 help='Directs the create_sdk target to create a smaller "Platform" SDK',
370 default=MakePlatformSDK(),
371 action='store_true')
360 other_group.add_argument('--target-sysroot', '-s', 372 other_group.add_argument('--target-sysroot', '-s',
361 type=str, 373 type=str,
362 help='Comma-separated list of arch=/path/to/sysroot mappings') 374 help='Comma-separated list of arch=/path/to/sysroot mappings')
363 other_group.add_argument('--toolchain-prefix', '-t', 375 other_group.add_argument('--toolchain-prefix', '-t',
364 type=str, 376 type=str,
365 help='Comma-separated list of arch=/path/to/toolchain-prefix mappings') 377 help='Comma-separated list of arch=/path/to/toolchain-prefix mappings')
366 other_group.add_argument('--tsan', 378 other_group.add_argument('--tsan',
367 help='Build with TSAN', 379 help='Build with TSAN',
368 default=UseTSAN(), 380 default=UseTSAN(),
369 action='store_true') 381 action='store_true')
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 return 1 453 return 1
442 454
443 endtime = time.time() 455 endtime = time.time()
444 if args.verbose: 456 if args.verbose:
445 print ("GN Time: %.3f seconds" % (endtime - starttime)) 457 print ("GN Time: %.3f seconds" % (endtime - starttime))
446 return 0 458 return 0
447 459
448 460
449 if __name__ == '__main__': 461 if __name__ == '__main__':
450 sys.exit(Main(sys.argv)) 462 sys.exit(Main(sys.argv))
OLDNEW
« no previous file with comments | « tools/create_sdk.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698