| Index: buildbot/buildbot_standard.py
|
| diff --git a/buildbot/buildbot_standard.py b/buildbot/buildbot_standard.py
|
| index 77a8c88ab1d164ad385421d147e44a41a67e4255..532bb02929ab229a736c23a50dc3bffc5aabf44c 100644
|
| --- a/buildbot/buildbot_standard.py
|
| +++ b/buildbot/buildbot_standard.py
|
| @@ -15,11 +15,11 @@ import sys
|
| import time
|
|
|
| from buildbot_lib import (
|
| - BuildContext, BuildStatus, Command, EnsureDirectoryExists,
|
| + BuildContext, BuildStatus, Command, EnsureDirectoryExists, GNArch,
|
| ParseStandardCommandLine, RemoveDirectory, RemovePath,
|
| RemoveGypBuildDirectories, RemoveSconsBuildDirectories, RunBuild, SCons,
|
| - SetupLinuxEnvironment, SetupMacEnvironment, SetupWindowsEnvironment,
|
| - SetupAndroidEnvironment, Step, StepLink, StepText, TryToCleanContents,
|
| + SetupLinuxEnvironment, SetupWindowsEnvironment,
|
| + Step, StepLink, StepText, TryToCleanContents,
|
| RunningOnBuildbot)
|
|
|
|
|
| @@ -78,84 +78,19 @@ def ArchiveCoverage(context):
|
| print '@@@STEP_LINK@view@%s@@@' % link_url
|
|
|
|
|
| -def CommandGypBuild(context):
|
| - # Do not use goma when inside a toolchain build, because the
|
| - # freshly-built NaCl compilers will never be available via goma.
|
| - # This sacrifices the benefits of goma for building the trusted
|
| - # code too, but it's not clear how to teach Gyp to use goma for
|
| - # some compilers and not others.
|
| - use_goma = (RunningOnBuildbot() and
|
| - not context['no_goma'] and
|
| - not context['inside_toolchain'])
|
| -
|
| - if use_goma:
|
| - # Since this is for buildbot, it should not be good to use the result
|
| - # generated by the different version compiler.
|
| - os.environ['GOMA_HERMETIC'] = 'fallback'
|
| - else:
|
| - os.environ['GOMA_DISABLED'] = '1'
|
| -
|
| - runtest_py = os.environ.get('RUNTEST')
|
| - alt_runtest_py = '/b/build/scripts/slave/runtest.py'
|
| - if runtest_py is None and os.path.exists(alt_runtest_py):
|
| - runtest_py = alt_runtest_py
|
| -
|
| - # TODO(bradnelson): Figure out why win64 trybots can't upload goma logs.
|
| - buildername = os.environ.get('BUILDBOT_BUILDERNAME', '')
|
| - excluded_os = False
|
| - for name in ['win64', 'vista', 'win7-64', 'win8-64']:
|
| - if name in buildername:
|
| - excluded_os = True
|
| -
|
| - if runtest_py is None or excluded_os:
|
| - # Fallback to direct goma + ninja if not run on bots.
|
| - try:
|
| - if use_goma:
|
| - Command(context, cmd=[
|
| - sys.executable, '/b/build/goma/goma_ctl.py', 'restart'])
|
| - cmd = ['ninja', '-v', '-k', '0', '-C', '../out/' + context['gyp_mode']]
|
| - if use_goma:
|
| - cmd += ['-j50']
|
| - Command(context, cmd=cmd)
|
| - finally:
|
| - if use_goma:
|
| - Command(context, cmd=[
|
| - sys.executable, '/b/build/goma/goma_ctl.py', 'stop'])
|
| - else:
|
| - # Infer the location of compile.py from runtest.py.
|
| - compile_py = os.path.join(os.path.dirname(runtest_py), 'compile.py')
|
| - cmd = [sys.executable, compile_py, '--target', context['gyp_mode'],
|
| - '--src-dir', '../', '--build-tool', 'ninja',
|
| - '--ninja-ensure-up-to-date']
|
| - if use_goma:
|
| - cmd += ['--compiler', 'goma']
|
| - cmd += ['--goma-dir', '/b/build/goma']
|
| - # Verbose and but stop on fail.
|
| - cmd += ['--', '-v', '-k', '0']
|
| - Command(context, cmd=cmd)
|
| -
|
| -
|
| -def CommandGypGenerate(context):
|
| - Command(
|
| - context,
|
| - cmd=[sys.executable, 'native_client/build/gyp_nacl'],
|
| - cwd='..')
|
| -
|
| -
|
| def CommandGclientRunhooks(context):
|
| if context.Windows():
|
| gclient = 'gclient.bat'
|
| else:
|
| gclient = 'gclient'
|
| print 'Running gclient runhooks...'
|
| - print 'GYP_CROSSCOMPILE=' + context.GetEnv('GYP_CROSSCOMPILE', '')
|
| - print 'GYP_GENERATORS=' + context.GetEnv('GYP_GENERATORS', '')
|
| - print 'GYP_MSVS_VERSION=' + context.GetEnv('GYP_MSVS_VERSION', '')
|
| - print 'GYP_DEFINES=' + context.GetEnv('GYP_DEFINES', '')
|
| Command(context, cmd=[gclient, 'runhooks', '--force'])
|
|
|
|
|
| def DoGNBuild(status, context, force_clang=False, force_arch=None):
|
| + if context['no_gn']:
|
| + return False
|
| +
|
| use_clang = force_clang or context['clang']
|
|
|
| # Linux builds (or cross-builds) for every target. Mac builds for
|
| @@ -174,6 +109,20 @@ def DoGNBuild(status, context, force_clang=False, force_arch=None):
|
| else:
|
| arch = context['arch']
|
|
|
| + if context.Linux():
|
| + # The Linux build uses a sysroot. 'gclient runhooks' installs this
|
| + # for the default architecture, but this might be a cross-build that
|
| + # gclient didn't know was going to be done. The script completes
|
| + # quickly when it's redundant with a previous run.
|
| + with Step('update_sysroot', status):
|
| + sysroot_arch = {'arm': 'arm',
|
| + '32': 'i386',
|
| + '64': 'amd64',
|
| + 'mips32': 'mips'}[arch]
|
| + Command(context, cmd=[sys.executable,
|
| + '../build/linux/sysroot_scripts/install-sysroot.py',
|
| + '--arch=' + sysroot_arch])
|
| +
|
| out_suffix = '_' + arch
|
| if force_clang:
|
| out_suffix += '_clang'
|
| @@ -184,12 +133,7 @@ def DoGNBuild(status, context, force_clang=False, force_arch=None):
|
|
|
| gn_newlib = BoolFlag(not context['use_glibc'])
|
| gn_glibc = BoolFlag(context['use_glibc'])
|
| -
|
| - gn_arch_name = {
|
| - 'arm': 'arm',
|
| - '32': 'x86',
|
| - '64': 'x64'
|
| - }[arch]
|
| + gn_arch_name = GNArch(arch)
|
|
|
| gn_gen_args = [
|
| # The Chromium GN definitions might default enable_nacl to false
|
| @@ -385,10 +329,7 @@ def BuildScript(status, context):
|
|
|
| # Skip over hooks when run inside the toolchain build because
|
| # package_version would overwrite the toolchain build.
|
| - if inside_toolchain:
|
| - with Step('gyp_generate_only', status):
|
| - CommandGypGenerate(context)
|
| - else:
|
| + if not inside_toolchain:
|
| with Step('gclient_runhooks', status):
|
| CommandGclientRunhooks(context)
|
|
|
| @@ -449,11 +390,6 @@ def BuildScript(status, context):
|
| with Step('checkdeps', status):
|
| Command(context, cmd=[sys.executable, 'tools/checkdeps/checkdeps.py'])
|
|
|
| - # Make sure our Gyp build is working.
|
| - if not context['no_gyp']:
|
| - with Step('gyp_compile', status):
|
| - CommandGypBuild(context)
|
| -
|
| # On a subset of Linux builds, build Breakpad tools for testing.
|
| if context['use_breakpad_tools']:
|
| with Step('breakpad configure', status):
|
| @@ -531,12 +467,11 @@ def Main():
|
| if context.Windows():
|
| SetupWindowsEnvironment(context)
|
| elif context.Linux():
|
| - if context['android']:
|
| - SetupAndroidEnvironment(context)
|
| - else:
|
| + if not context['android']:
|
| SetupLinuxEnvironment(context)
|
| elif context.Mac():
|
| - SetupMacEnvironment(context)
|
| + # No setup to do for Mac.
|
| + pass
|
| else:
|
| raise Exception("Unsupported platform.")
|
| RunBuild(BuildScript, status)
|
|
|