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

Side by Side Diff: build/scripts/master/factory/chromium_factory.py

Issue 142373002: Set use_goma=1 and gomadir=path in GYP_DEFINES on master. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Utility class to build the chromium master BuildFactory's. 5 """Utility class to build the chromium master BuildFactory's.
6 6
7 Based on gclient_factory.py and adds chromium-specific steps.""" 7 Based on gclient_factory.py and adds chromium-specific steps."""
8 8
9 import re 9 import re
10 10
(...skipping 21 matching lines...) Expand all
32 def FixForGomaWin(options, target, gclient_env): 32 def FixForGomaWin(options, target, gclient_env):
33 """Fix gyp variables required for goma on Windows, 33 """Fix gyp variables required for goma on Windows,
34 unless it is already set. 34 unless it is already set.
35 35
36 Args: 36 Args:
37 options: a list of string for factory options. 37 options: a list of string for factory options.
38 target: a string of build target (e.g. Debug, Release). 38 target: a string of build target (e.g. Debug, Release).
39 gclient_env: a dict for gclient_env. 39 gclient_env: a dict for gclient_env.
40 """ 40 """
41 options = options or {} 41 options = options or {}
42 if (not '--compiler=goma' in options and 42 if ('--compiler=goma' not in options and
43 not '--compiler=goma-clang' in options): 43 '--compiler=goma-clang' not in options):
44 return 44 return
45 gyp_defines = gclient_env.get('GYP_DEFINES', '') 45 gyp_defines = gclient_env.get('GYP_DEFINES', '')
46 # goma couldn't work with pdbserv. 46 # goma couldn't work with pdbserv.
47 if 'fastbuild=1' not in gyp_defines and 'win_z7=1' not in gyp_defines: 47 if 'fastbuild=1' not in gyp_defines and 'win_z7=1' not in gyp_defines:
48 if target.startswith('Debug'): 48 if target.startswith('Debug'):
49 gyp_defines += ' win_z7=1' 49 gyp_defines += ' win_z7=1'
50 else: 50 else:
51 gyp_defines += ' fastbuild=1' 51 gyp_defines += ' fastbuild=1'
52 # goma couldn't handle precompiled headers. 52 # goma couldn't handle precompiled headers.
53 if 'chromium_win_pch=0' not in gyp_defines: 53 if 'chromium_win_pch=0' not in gyp_defines:
54 gyp_defines += ' chromium_win_pch=0' 54 gyp_defines += ' chromium_win_pch=0'
55 gclient_env['GYP_DEFINES'] = gyp_defines 55 gclient_env['GYP_DEFINES'] = gyp_defines
56 56
57 57
58 def SetGomaGypDefines(options, target, gclient_env):
59 """Adds goma flags to GYP_DEFINES."""
60 options = options or {}
61 if ('--compiler=goma' not in options and
62 '--compiler=goma-clang' not in options):
63 return
64 # Starting from e.g. C:\b\build\slave\build_slave_path\build, find
65 # C:\b\build\goma.
66 gomadir = os.path.normpath(os.path.join('..', '..', '..', 'goma'))
67 gyp_defines = gclient_env.get('GYP_DEFINES', '')
68 gyp_defines += ' use_goma=1 gomadir=%s' % gomadir
69 gclient_env['GYP_DEFINES'] = gyp_defines
70
71
58 class ChromiumFactory(gclient_factory.GClientFactory): 72 class ChromiumFactory(gclient_factory.GClientFactory):
59 """Encapsulates data and methods common to the chromium master.cfg files.""" 73 """Encapsulates data and methods common to the chromium master.cfg files."""
60 74
61 DEFAULT_TARGET_PLATFORM = config.Master.default_platform 75 DEFAULT_TARGET_PLATFORM = config.Master.default_platform
62 76
63 MEMORY_TOOLS_GYP_DEFINES = 'build_for_tool=memcheck' 77 MEMORY_TOOLS_GYP_DEFINES = 'build_for_tool=memcheck'
64 78
65 # gclient custom vars 79 # gclient custom vars
66 CUSTOM_VARS_GOOGLECODE_URL = ('googlecode_url', config.Master.googlecode_url) 80 CUSTOM_VARS_GOOGLECODE_URL = ('googlecode_url', config.Master.googlecode_url)
67 CUSTOM_VARS_SOURCEFORGE_URL = ('sourceforge_url', 81 CUSTOM_VARS_SOURCEFORGE_URL = ('sourceforge_url',
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 # revision in their filename. For this to work correctly, the testers 961 # revision in their filename. For this to work correctly, the testers
948 # need to be on a Triggerable that's activated by their builder. 962 # need to be on a Triggerable that's activated by their builder.
949 factory_properties.setdefault('webkit_dir', 'third_party/WebKit/Source') 963 factory_properties.setdefault('webkit_dir', 'third_party/WebKit/Source')
950 964
951 factory_properties['gclient_env'] = \ 965 factory_properties['gclient_env'] = \
952 factory_properties.get('gclient_env', {}).copy() 966 factory_properties.get('gclient_env', {}).copy()
953 # Defaults gyp to VS2010. 967 # Defaults gyp to VS2010.
954 if self._target_platform == 'win32': 968 if self._target_platform == 'win32':
955 factory_properties['gclient_env'].setdefault('GYP_MSVS_VERSION', '2010') 969 factory_properties['gclient_env'].setdefault('GYP_MSVS_VERSION', '2010')
956 FixForGomaWin(options, target, factory_properties['gclient_env']) 970 FixForGomaWin(options, target, factory_properties['gclient_env'])
971 SetGomaGypDefines(options, target, factory_properties['gclient_env']):
957 tests = tests or [] 972 tests = tests or []
958 973
959 if factory_properties.get('needs_valgrind'): 974 if factory_properties.get('needs_valgrind'):
960 self._solutions[0].custom_deps_list = [self.CUSTOM_DEPS_VALGRIND] 975 self._solutions[0].custom_deps_list = [self.CUSTOM_DEPS_VALGRIND]
961 elif factory_properties.get('needs_tsan_win'): 976 elif factory_properties.get('needs_tsan_win'):
962 self._solutions[0].custom_deps_list = [self.CUSTOM_DEPS_TSAN_WIN] 977 self._solutions[0].custom_deps_list = [self.CUSTOM_DEPS_TSAN_WIN]
963 elif factory_properties.get('needs_drmemory'): 978 elif factory_properties.get('needs_drmemory'):
964 if 'drmemory.DEPS' not in [s.name for s in self._solutions]: 979 if 'drmemory.DEPS' not in [s.name for s in self._solutions]:
965 self._solutions.append(gclient_factory.GClientSolution( 980 self._solutions.append(gclient_factory.GClientSolution(
966 config.Master.trunk_url + 981 config.Master.trunk_url +
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 mode=None, slave_type='BuilderTester', options=None, 1390 mode=None, slave_type='BuilderTester', options=None,
1376 compile_timeout=1200, build_url=None, project=None, 1391 compile_timeout=1200, build_url=None, project=None,
1377 factory_properties=None): 1392 factory_properties=None):
1378 # Make sure the solution is not already there. 1393 # Make sure the solution is not already there.
1379 if 'cros_deps' not in [s.name for s in self._solutions]: 1394 if 'cros_deps' not in [s.name for s in self._solutions]:
1380 self._solutions.append(gclient_factory.GClientSolution( 1395 self._solutions.append(gclient_factory.GClientSolution(
1381 config.Master.trunk_url + '/src/tools/cros.DEPS', name='cros_deps')) 1396 config.Master.trunk_url + '/src/tools/cros.DEPS', name='cros_deps'))
1382 return self.ChromiumFactory(target, clobber, tests, mode, slave_type, 1397 return self.ChromiumFactory(target, clobber, tests, mode, slave_type,
1383 options, compile_timeout, build_url, project, 1398 options, compile_timeout, build_url, project,
1384 factory_properties) 1399 factory_properties)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698