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

Side by Side Diff: scripts/slave/compile.py

Issue 507007: Adding Arm chromium builder to waterfall. (Closed) Base URL: svn://chrome-svn/chrome/trunk/tools/buildbot/
Patch Set: Created 11 years 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 | Annotate | Revision Log
« master.chromium/master.cfg ('K') | « master.chromium/slaves.cfg ('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/python 1 #!/usr/bin/python
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 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 """A tool to build chrome, executed by buildbot. 6 """A tool to build chrome, executed by buildbot.
7 7
8 When this is run, the current directory (cwd) should be the outer build 8 When this is run, the current directory (cwd) should be the outer build
9 directory (e.g., chrome-release/build/). 9 directory (e.g., chrome-release/build/).
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 # If the project isn't in args, add all.xcodeproj so simplify configuration. 47 # If the project isn't in args, add all.xcodeproj so simplify configuration.
48 command = ['xcodebuild', '-configuration', options.target] 48 command = ['xcodebuild', '-configuration', options.target]
49 if not '-project' in args: 49 if not '-project' in args:
50 command.extend(['-project', 'all.xcodeproj']) 50 command.extend(['-project', 'all.xcodeproj'])
51 command.extend(args) 51 command.extend(args)
52 52
53 result = chromium_utils.RunCommand(command) 53 result = chromium_utils.RunCommand(command)
54 return result 54 return result
55 55
56 56
57 def common_linux_settings(command, distcc_pump=False): 57 def common_linux_settings(command, distcc_pump=False, crosstool=None):
58 """ 58 """
59 Sets desirable Linux environment variables and command-line options 59 Sets desirable Linux environment variables and command-line options
60 that are common to the Make and SCons builds. 60 that are common to the Make and SCons builds.
61 """ 61 """
62 if options.mode == 'google_chrome' or options.mode == 'official': 62 if options.mode == 'google_chrome' or options.mode == 'official':
63 os.environ['CHROMIUM_BUILD'] = '_google_chrome' 63 os.environ['CHROMIUM_BUILD'] = '_google_chrome'
64 64
65 if options.mode == 'official': 65 if options.mode == 'official':
66 os.environ['OFFICIAL_BUILD'] = '1' 66 os.environ['OFFICIAL_BUILD'] = '1'
67 os.environ['CHROME_BUILD_TYPE'] = '_official' 67 os.environ['CHROME_BUILD_TYPE'] = '_official'
68 # Official builds are always Google Chrome. 68 # Official builds are always Google Chrome.
69 69
70 # Don't stop at the first error. 70 # Don't stop at the first error.
71 command.append('-k') 71 command.append('-k')
72 72
73 # distcc pump is ccache incompatible, the pump script sets CC/CXX/-j. 73 # distcc pump is ccache incompatible, the pump script sets CC/CXX/-j.
74 if distcc_pump: 74 if distcc_pump:
75 return 75 return
76 76
77 # Setup crosstool environment variables.
78 if crosstool:
79 os.environ['AR'] = crosstool + '-ar'
80 os.environ['AS'] = crosstool + '-as'
81 os.environ['CC'] = crosstool + '-gcc'
82 os.environ['CXX'] = crosstool + '-g++'
83 os.environ['LD'] = crosstool + '-ld'
84 os.environ['RANLIB'] = crosstool + '-ranlib'
85 command.append('-j4')
86 return
87
77 jobs = 4 88 jobs = 4
78 cc = 'gcc' 89 cc = 'gcc'
79 cpp = 'g++' 90 cpp = 'g++'
80 distcc_hosts_file = os.path.join(os.path.expanduser('~'), '.distcc/hosts') 91 distcc_hosts_file = os.path.join(os.path.expanduser('~'), '.distcc/hosts')
81 if os.path.exists('/usr/bin/distcc') and os.path.exists(distcc_hosts_file): 92 if os.path.exists('/usr/bin/distcc') and os.path.exists(distcc_hosts_file):
82 cc = 'distcc ' + cc 93 cc = 'distcc ' + cc
83 cpp = 'distcc ' + cpp 94 cpp = 'distcc ' + cpp
84 jobs = 12 95 jobs = 12
85 if os.path.exists('/usr/bin/ccache'): 96 if os.path.exists('/usr/bin/ccache'):
86 cc = 'ccache ' + cc 97 cc = 'ccache ' + cc
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 132
122 if options.distcc_pump: 133 if options.distcc_pump:
123 # pump_chrome is a custom script for running distcc pump. We just call 134 # pump_chrome is a custom script for running distcc pump. We just call
124 # pump_chrome so the local user can easily customize distcc parameters. 135 # pump_chrome so the local user can easily customize distcc parameters.
125 # The simplist pump_chrome script would be: 136 # The simplist pump_chrome script would be:
126 # #!/bin/sh 137 # #!/bin/sh
127 # CC="distcc gcc" CXX="distcc g++" pump make -jN $@ 138 # CC="distcc gcc" CXX="distcc g++" pump make -jN $@
128 command = ['pump_chrome'] 139 command = ['pump_chrome']
129 else: 140 else:
130 command = ['make'] 141 command = ['make']
131 common_linux_settings(command, options.distcc_pump) 142 common_linux_settings(command, options.distcc_pump, options.crosstool)
132 143
133 command.append('BUILDTYPE=' + options.target) 144 command.append('BUILDTYPE=' + options.target)
134 145
135 # Here's what you can uncomment if you need to see more info 146 # Here's what you can uncomment if you need to see more info
136 # about what the build is doing on a slave: 147 # about what the build is doing on a slave:
137 # 148 #
138 # V=1 prints the actual executed command 149 # V=1 prints the actual executed command
139 # 150 #
140 #command.extend(['V=1']) 151 #command.extend(['V=1'])
141 command.extend(options.build_args + args) 152 command.extend(options.build_args + args)
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 option_parser.add_option('', '--msvs_version', default='8', 314 option_parser.add_option('', '--msvs_version', default='8',
304 help='VisualStudio version to use ' 315 help='VisualStudio version to use '
305 '[default:%default]') 316 '[default:%default]')
306 option_parser.add_option('', '--fastbuild', action="store_true", 317 option_parser.add_option('', '--fastbuild', action="store_true",
307 help='faster build (with debug info stripped)') 318 help='faster build (with debug info stripped)')
308 if chromium_utils.IsLinux(): 319 if chromium_utils.IsLinux():
309 # This is for Linux local testing where we have a distcc pump cluster. 320 # This is for Linux local testing where we have a distcc pump cluster.
310 # Only works for make builds. Ask thestig if you're curious. 321 # Only works for make builds. Ask thestig if you're curious.
311 option_parser.add_option('', '--distcc-pump', action="store_true", 322 option_parser.add_option('', '--distcc-pump', action="store_true",
312 help='run distcc pump mode for local testing') 323 help='run distcc pump mode for local testing')
324 # For linux to arm cross compile.
325 option_parser.add_option('', '--crosstool', default=None,
326 help='optional path to crosstool toolset')
313 327
314 options, args = option_parser.parse_args() 328 options, args = option_parser.parse_args()
315 329
316 if options.build_tool is None: 330 if options.build_tool is None:
317 if chromium_utils.IsWindows(): 331 if chromium_utils.IsWindows():
318 main = main_win 332 main = main_win
319 elif chromium_utils.IsMac(): 333 elif chromium_utils.IsMac():
320 main = main_xcode 334 main = main_xcode
321 elif chromium_utils.IsLinux(): 335 elif chromium_utils.IsLinux():
322 main = main_scons 336 main = main_scons
323 else: 337 else:
324 print('Please specify --build-tool.') 338 print('Please specify --build-tool.')
325 sys.exit(1) 339 sys.exit(1)
326 else: 340 else:
327 build_tool_map = { 341 build_tool_map = {
328 'ib' : main_win, 342 'ib' : main_win,
329 'vs' : main_win, 343 'vs' : main_win,
330 'make' : main_make, 344 'make' : main_make,
331 'scons' : main_scons, 345 'scons' : main_scons,
332 'xcode' : main_xcode, 346 'xcode' : main_xcode,
333 } 347 }
334 main = build_tool_map.get(options.build_tool) 348 main = build_tool_map.get(options.build_tool)
335 if not main: 349 if not main:
336 sys.stderr.write('Unknown build tool %s.\n' % repr(options.build_tool)) 350 sys.stderr.write('Unknown build tool %s.\n' % repr(options.build_tool))
337 sys.exit(2) 351 sys.exit(2)
338 352
339 sys.exit(main(options, args)) 353 sys.exit(main(options, args))
OLDNEW
« master.chromium/master.cfg ('K') | « master.chromium/slaves.cfg ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698