Files
platform-external-webrtc/webrtc/build/mb_config.pyl
kjellander f02207dde9 MB: Flip Mac bots to GN by default.
Change the previous GN configs to build GYP instead
(since we'll keep GYP around for a while) but exclude tests
and examples for that config, since we'll only support the production
code for GYP.

Add new configs for upcoming rename of those bots to GYP instead
of GN.

BUG=webrtc:5949
NOTRY=True

Review-Url: https://codereview.webrtc.org/2274713003
Cr-Commit-Position: refs/heads/master@{#13900}
2016-08-24 16:40:04 +00:00

536 lines
18 KiB
Plaintext

# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# FOR DETAILS ON THIS FILE SEE THE MAIN COPY IN //tools/mb/mb_config.pyl.
# This is configuration for standalone WebRTC bots. It is used to keep the bot
# configurations source-side instead of in the buildbot scripts. That makes it
# easy to try different configurations of GYP and GN in tryjob patches.
{
# This is a map of buildbot master names -> buildbot builder names ->
# config names (where each config name is a key in the 'configs' dict,
# above). mb uses this dict to look up which config to use for a given bot.
# The builders should be sorted by the order they appear in the /builders
# page on the buildbots, *not* alphabetically.
'masters': {
'client.webrtc': {
# iOS
'iOS32 Debug': 'ios_gyp_debug_static_bot_arm_device',
'iOS32 Release': 'ios_gyp_release_bot_arm_device',
'iOS64 Debug': 'ios_gyp_debug_static_bot_arm64_device',
'iOS64 Release': 'ios_gyp_release_bot_arm64_device',
'iOS32 Simulator Debug': 'ios_gyp_debug_static_bot_x86',
'iOS64 Simulator Debug': 'ios_gyp_debug_static_bot_x64',
'iOS64 Debug (GN)': 'ios_gn_debug_static_bot_arm64_device',
'iOS64 Release (GN)': 'ios_gn_release_bot_arm64_device',
# Mac
'Mac64 Debug': 'gn_debug_bot_x64',
'Mac64 Release': 'gn_release_bot_x64',
'Mac Asan': 'mac_gn_asan_clang_release_bot_x64',
'Mac64 Release [large tests]': 'gn_release_bot_x64',
# TODO(kjellander): Remove the two GN configs below as soon we've renamed
# the bots to the GYP versions (duplicated now).
'Mac64 Debug (GN)': 'gyp_debug_bot_x64_exclude_tests',
'Mac64 Release (GN)': 'gyp_release_bot_x64_exclude_tests',
'Mac64 Debug (GYP)': 'gyp_debug_bot_x64_exclude_tests',
'Mac64 Release (GYP)': 'gyp_release_bot_x64_exclude_tests',
# Linux
'Linux32 ARM': 'gyp_crosscompile_release_bot_arm',
'Linux32 Debug': 'gyp_debug_bot_x86',
'Linux32 Release': 'gyp_release_bot_x86',
'Linux64 Debug': 'gyp_debug_bot_x64',
'Linux64 Release': 'gyp_release_bot_x64',
'Linux Asan': 'gyp_asan_lsan_clang_release_bot_x64',
'Linux Memcheck': 'gyp_memcheck_release_bot_x64',
'Linux MSan': 'gyp_msan_clang_release_bot_x64',
'Linux Tsan v2': 'gyp_tsan_clang_release_bot_x64',
'Linux UBSan': 'gyp_ubsan_clang_release_bot_x64',
'Linux UBSan vptr': 'gyp_ubsan_vptr_clang_release_bot_x64',
'Linux64 Release [large tests]': 'gyp_release_bot_x64',
'Linux64 Debug (GN)': 'gn_debug_bot_x64',
'Linux64 Release (GN)': 'gn_release_bot_x64',
# Android
'Android32 Builder': 'android_gn_release_bot_arm',
'Android32 Builder (dbg)': 'android_gn_debug_static_bot_arm',
'Android32 Builder x86': 'android_gn_release_bot_x86',
'Android32 Builder x86 (dbg)': 'android_gn_debug_static_bot_x86',
'Android32 Builder MIPS (dbg)': 'android_gn_clang_debug_static_bot_mipsel',
'Android32 Clang (dbg)': 'android_gn_clang_debug_static_bot_arm',
'Android64 Builder': 'android_gn_release_bot_arm64',
'Android64 Builder (dbg)': 'android_gn_debug_static_bot_arm64',
'Android64 Builder x64 (dbg)': 'android_gn_debug_static_bot_x64',
# TODO(kjellander): Remove the 'Android32 GN' configs as soon we've
# renamed these bots to Android32 GYP in the main waterfall.
'Android32 GN': 'android_gyp_release_bot_arm',
'Android32 GN (dbg)': 'android_gyp_debug_static_bot_arm',
'Android32 GYP': 'android_gyp_release_bot_arm',
'Android32 GYP (dbg)': 'android_gyp_debug_static_bot_arm',
'Android32 Tests (L Nexus5)(dbg)': 'none',
'Android32 Tests (L Nexus5)': 'none',
'Android32 Tests (L Nexus7.2)(dbg)': 'none',
'Android32 Tests (L Nexus7.2)': 'none',
'Android64 Tests (L Nexus9)': 'none',
# Windows
'Win32 Debug': 'gyp_debug_bot_x86',
'Win32 Release': 'gyp_release_bot_x86',
'Win64 Debug': 'gyp_debug_bot_x64',
'Win64 Release': 'gyp_release_bot_x64',
'Win64 Debug (GN)': 'gn_debug_bot_x64',
'Win64 Release (GN)': 'gn_release_bot_x64',
'Win32 Debug (Clang)': 'win_gyp_clang_debug_bot_x86',
'Win32 Release (Clang)': 'win_gyp_clang_release_bot_x86',
'Win64 Debug (Clang)': 'win_gyp_clang_debug_bot_x64',
'Win64 Release (Clang)': 'win_gyp_clang_release_bot_x64',
'Win SyzyASan': 'win_gyp_syzyasan_release_bot_x86',
'Win DrMemory Full': 'win_gyp_drmemory_debug_bot_x86',
'Win DrMemory Light': 'win_gyp_drmemory_debug_bot_x86',
'Win32 Release [large tests]': 'gyp_release_bot_x86',
},
'tryserver.webrtc': {
# iOS
'ios_dbg': 'ios_gyp_debug_static_bot_arm_device',
'ios_rel': 'ios_gyp_release_bot_arm_device',
'ios_arm64_dbg': 'ios_gyp_debug_static_bot_arm64_device',
'ios_arm64_rel': 'ios_gyp_release_bot_arm64_device',
'ios32_sim_dbg': 'ios_gyp_debug_static_bot_x86',
'ios64_sim_dbg': 'ios_gyp_debug_static_bot_x64',
'ios64_gn_dbg': 'ios_gn_debug_static_bot_arm64_device',
'ios64_gn_rel': 'ios_gn_release_bot_arm64_device',
# Mac
'mac_compile_dbg': 'gn_debug_bot_x64',
'mac_compile_rel': 'gn_release_bot_x64',
'mac_dbg': 'gn_debug_bot_x64',
'mac_rel': 'gn_release_bot_x64',
'mac_asan': 'mac_gn_asan_clang_release_bot_x64',
'mac_baremetal': 'gn_release_bot_x64',
'mac_swarming': 'swarming_gn_debug_bot_x64',
# TODO(kjellander): Remove the two GN configs below as soon we've renamed
# the bots to the GYP versions (duplicated now).
'mac_gn_dbg': 'gyp_debug_bot_x64_exclude_tests',
'mac_gn_rel': 'gyp_release_bot_x64_exclude_tests',
'mac_gyp_dbg': 'gyp_debug_bot_x64_exclude_tests',
'mac_gyp_rel': 'gyp_release_bot_x64_exclude_tests',
# Linux
'linux_compile_dbg': 'gyp_debug_bot_x64',
'linux_compile_rel': 'gyp_release_bot_x64',
'linux_dbg': 'gyp_debug_bot_x64',
'linux_rel': 'gyp_release_bot_x64',
'linux_gn_dbg': 'gn_debug_bot_x64',
'linux_gn_rel': 'gn_release_bot_x64',
'linux_arm': 'gyp_crosscompile_release_bot_arm',
'linux_asan': 'gyp_asan_lsan_clang_release_bot_x64',
'linux_memcheck': 'gyp_memcheck_release_bot_x64',
'linux_msan': 'gyp_msan_clang_release_bot_x64',
'linux_tsan2': 'gyp_tsan_clang_release_bot_x64',
'linux_ubsan': 'gyp_ubsan_clang_release_bot_x64',
'linux_ubsan_vptr': 'gyp_ubsan_vptr_clang_release_bot_x64',
'linux_baremetal': 'gyp_release_bot_x64',
'linux_swarming': 'swarming_gyp_debug_bot_x64',
# Android
'android_compile_dbg': 'android_gn_debug_static_bot_arm',
'android_compile_rel': 'android_gn_release_bot_arm',
'android_compile_arm64_dbg': 'android_gn_debug_static_bot_arm64',
'android_compile_arm64_rel': 'android_gn_release_bot_arm64',
'android_compile_x86_dbg': 'android_gn_debug_static_bot_x86',
'android_compile_x86_rel': 'android_gn_release_bot_x86',
'android_compile_x64_dbg': 'android_gn_debug_static_bot_x64',
'android_compile_mips_dbg': 'android_gn_clang_debug_static_bot_mipsel',
'android_dbg': 'android_gn_debug_static_bot_arm',
'android_rel': 'android_gn_release_bot_arm',
'android_clang_dbg': 'android_gn_clang_debug_static_bot_arm',
'android_arm64_rel': 'android_gn_release_bot_arm64',
'android_n6': 'android_gn_debug_static_bot_arm',
# TODO(kjellander): Remove the android_gn_* configs as soon we've renamed
# the bots to the GYP versions at the tryserver.
'android_gn_dbg': 'android_gyp_debug_static_bot_arm',
'android_gn_rel': 'android_gyp_release_bot_arm',
'android_gyp_dbg': 'android_gyp_debug_static_bot_arm',
'android_gyp_rel': 'android_gyp_release_bot_arm',
# Windows
'win_compile_dbg': 'gyp_debug_bot_x86',
'win_compile_rel': 'gyp_release_bot_x86',
'win_compile_x64_dbg': 'gyp_debug_bot_x64',
'win_compile_x64_rel': 'gyp_release_bot_x64',
'win_dbg': 'gyp_debug_bot_x86',
'win_rel': 'gyp_release_bot_x86',
'win_x64_dbg': 'gyp_debug_bot_x64',
'win_x64_rel': 'gyp_release_bot_x64',
'win_x64_gn_dbg': 'gn_debug_bot_x64',
'win_x64_gn_rel': 'gn_release_bot_x64',
'win_clang_dbg': 'win_gyp_clang_debug_bot_x86',
'win_clang_rel': 'win_gyp_clang_release_bot_x86',
'win_x64_clang_dbg': 'win_gyp_clang_debug_bot_x64',
'win_x64_clang_rel': 'win_gyp_clang_release_bot_x64',
'win_asan': 'win_gyp_syzyasan_release_bot_x86',
'win_drmemory_light': 'win_gyp_drmemory_debug_bot_x86',
'win_drmemory_full': 'win_gyp_drmemory_debug_bot_x86',
'win_baremetal': 'gyp_release_bot_x86',
'win_swarming': 'swarming_gyp_debug_bot_x64',
},
},
# This is the list of configs that you can pass to mb; each config
# represents a particular combination of GYP_DEFINES/gn args that
# we must support. A given config *may* be platform-specific but
# is not necessarily so (i.e., we might have mac, win, and linux
# bots all using the 'gn_release_bot' config).
'configs': {
# iOS
'ios_gn_debug_static_bot_arm64_device': [
'ios', 'gn', 'debug_static_bot', 'arm64', 'device'
],
'ios_gn_release_bot_arm64_device': [
'ios', 'gn', 'release_bot', 'arm64', 'device'
],
'ios_gyp_debug_static_bot_arm_device': [
'ios', 'gyp', 'debug_static_bot', 'arm', 'device'
],
'ios_gyp_release_bot_arm_device': [
'ios', 'gyp', 'release_bot', 'arm', 'device'
],
'ios_gyp_debug_static_bot_arm64_device': [
'ios', 'gyp', 'debug_static_bot', 'arm64', 'device'
],
'ios_gyp_release_bot_arm64_device': [
'ios', 'gyp', 'release_bot', 'arm64', 'device'
],
'ios_gyp_debug_static_bot_x86': [
'ios', 'gyp', 'debug_static_bot', 'x86'
],
'ios_gyp_debug_static_bot_x64': [
'ios', 'gyp', 'release_bot', 'x64'
],
# Linux, Mac and Windows
'gyp_crosscompile_release_bot_arm': [
'gyp', 'crosscompile', 'openh264_release_bot', 'arm'
],
'gyp_debug_bot_x86': [
'gyp', 'openh264_debug_bot', 'x86'
],
'gyp_release_bot_x86': [
'gyp', 'openh264_release_bot', 'x86'
],
'gyp_debug_bot_x64': [
'gyp', 'openh264_debug_bot', 'x64'
],
'gyp_debug_bot_x64_exclude_tests': [
'gyp', 'openh264_debug_bot', 'x64', 'exclude_tests', 'exclude_examples'
],
'gyp_release_bot_x64': [
'gyp', 'openh264_release_bot', 'x64'
],
'gyp_release_bot_x64_exclude_tests': [
'gyp', 'openh264_release_bot', 'x64', 'exclude_tests', 'exclude_examples'
],
'gyp_asan_lsan_clang_release_bot_x64': [
'gyp', 'asan', 'lsan', 'clang', 'openh264_release_bot', 'x64'
],
'gyp_memcheck_release_bot_x64': [
'gyp', 'memcheck', 'openh264_release_bot', 'x64'
],
'gyp_msan_clang_release_bot_x64': [
'gyp', 'msan', 'clang', 'openh264_release_bot', 'x64'
],
'gyp_tsan_clang_release_bot_x64': [
'gyp', 'tsan', 'clang', 'openh264_release_bot', 'x64'
],
'gyp_ubsan_clang_release_bot_x64': [
'gyp', 'ubsan', 'clang', 'openh264_release_bot', 'x64'
],
'gyp_ubsan_vptr_clang_release_bot_x64': [
'gyp', 'ubsan_vptr', 'clang', 'openh264_release_bot', 'x64'
],
'gn_debug_bot_x64': [
'gn', 'openh264_debug_bot', 'x64'
],
'gn_release_bot_x64': [
'gn', 'openh264_release_bot', 'x64'
],
'swarming_gn_debug_bot_x64': [
'swarming', 'gn', 'openh264_debug_bot', 'x64'
],
'swarming_gyp_debug_bot_x64': [
'swarming', 'gyp', 'openh264_debug_bot', 'x64'
],
# Windows
'win_gyp_clang_debug_bot_x86': [
'gyp', 'clang', 'openh264_debug_bot', 'x86',
],
'win_gyp_clang_release_bot_x86': [
'gyp', 'clang', 'openh264_release_bot', 'x86',
],
'win_gyp_clang_debug_bot_x64': [
'gyp', 'clang', 'openh264_debug_bot', 'x64',
],
'win_gyp_clang_release_bot_x64': [
'gyp', 'clang', 'openh264_release_bot', 'x64',
],
'win_gyp_syzyasan_release_bot_x86': [
'gyp', 'syzyasan', 'minimal_symbols', 'openh264_release_bot', 'x86',
],
# TODO(kjellander): Flip DrMemory bots over to Release after GN migration
# (http://crbug.com/636414).
'win_gyp_drmemory_debug_bot_x86': [
'gyp', 'drmemory', 'minimal_symbols', 'openh264_debug_bot', 'x86',
],
# Mac
'mac_gn_asan_clang_release_bot_x64': [
'gn', 'asan', 'clang', 'openh264_release_bot', 'x64',
],
# Android
'android_gyp_debug_static_bot_arm': [
'android', 'gyp', 'debug_static_bot', 'arm', 'exclude_tests',
'exclude_examples'
],
'android_gyp_release_bot_arm': [
'android', 'gyp', 'release_bot', 'arm', 'exclude_tests',
'exclude_examples'
],
'android_gn_debug_static_bot_arm': [
'android', 'gn', 'debug_static_bot', 'arm'
],
'android_gn_release_bot_arm': [
'android', 'gn', 'release_bot', 'arm'
],
'android_gn_debug_static_bot_x86': [
'android', 'gn', 'debug_static_bot', 'x86'
],
'android_gn_release_bot_x86': [
'android', 'gn', 'release_bot', 'x86'
],
'android_gn_clang_debug_static_bot_arm': [
'android', 'gn', 'clang', 'debug_static_bot', 'arm'
],
'android_gn_clang_debug_static_bot_mipsel': [
'android', 'gn', 'clang', 'debug_static_bot', 'mipsel'
],
'android_gn_debug_static_bot_arm64': [
'android', 'gn', 'debug_static_bot', 'arm64'
],
'android_gn_release_bot_arm64': [
'android', 'gn', 'release_bot', 'arm64'
],
'android_gn_debug_static_bot_x64': [
'android', 'gn', 'debug_static_bot', 'x64'
],
# This is used for tracking purposes; any bot that uses this config
# should never actually run MB.
'none': [
'error',
],
},
# This is a dict mapping a given 'mixin' name to a dict of settings that
# mb should use. See //tools/mb/docs/user_guide.md for more information.
'mixins': {
'android': {
'gn_args': 'target_os="android"',
'gyp_defines': 'OS=android',
},
'arm': {
'gn_args': 'target_cpu="arm"',
'gyp_defines': 'target_arch=arm',
},
'arm64': {
'gn_args': 'target_cpu="arm64"',
'gyp_defines': 'target_arch=arm64',
},
'asan': {
'gn_args': 'is_asan=true',
'gyp_defines': 'asan=1',
},
'clang': {
'gn_args': 'is_clang=true',
'gyp_defines': 'clang=1',
},
'crosscompile': {
# This mixin is only needed on GYP bots that are doing cross-compiles
# but are *not* targetting Android or iOS (where
# webrtc/build/gyp_webrtc.py will set the crosscompile variable
# automatically). It is not need in GN at all.
'gyp_crosscompile': True,
},
'dcheck_always_on': {
'gn_args': 'dcheck_always_on=true',
'gyp_defines': 'dcheck_always_on=1',
},
'debug': {
'gn_args': 'is_debug=true',
},
'debug_bot': {
'mixins': ['debug', 'shared', 'goma'],
},
'debug_static_bot': {
'mixins': ['debug', 'static', 'minimal_symbols', 'goma'],
},
'device': {
'gn_args': 'ios_enable_code_signing=false',
'gyp_defines': 'chromium_ios_signing=0',
},
'drmemory': {
'gn_args': 'is_component_build=true enable_iterator_debugging=false',
'gyp_defines': 'component=shared_library build_for_tool=drmemory',
},
# This mixin is used to force configs that use it to fail. It
# is used in two cases: when we have bots that we haven't looked
# at yet and don't know whether they need MB or not, and for bots
# that are test-only and should never run MB.
'error': {
'gn_args': 'error',
'gyp_defines': 'target_arch=unknown',
},
'exclude_examples': {
'gyp_defines': 'include_examples=0',
},
'exclude_tests': {
'gn_args': 'rtc_include_tests=false',
'gyp_defines': 'include_tests=0',
},
'gn': {'type': 'gn'},
'goma': {
# The MB code will properly escape goma_dir if necessary in the GYP
# code path; the GN code path needs no escaping.
'gn_args': 'use_goma=true',
'gyp_defines': 'use_goma=1',
},
'gyp': {'type': 'gyp'},
'ios': {
'gn_args': 'target_os="ios"',
'gyp_defines': 'OS=ios',
},
'lsan': {
'gn_args': 'is_lsan=true',
'gyp_defines': 'lsan=1',
},
'memcheck': {
'gyp_defines': 'build_for_tool=memcheck',
},
'minimal_symbols': {
'gn_args': 'symbol_level=1',
'gyp_defines': 'fastbuild=1',
},
'mipsel': {
'gn_args': 'target_cpu="mipsel"',
'gyp_defines': 'target_arch=mipsel',
},
'minimal_symbols': {
'gn_args': 'symbol_level=1',
'gyp_defines': 'fastbuild=1',
},
'msan': {
'gn_args': ('is_msan=true msan_track_origins=2 '
'use_prebuilt_instrumented_libraries=true'),
'gyp_defines': ('msan=1 msan_track_origins=2 '
'use_prebuilt_instrumented_libraries=1'),
},
'openh264': {
'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
'gyp_defines': 'ffmpeg_branding=Chrome rtc_use_h264=1',
},
'openh264_debug_bot': {
'mixins': ['openh264', 'debug_bot'],
},
'openh264_release_bot': {
'mixins': ['openh264', 'release_bot'],
},
'release': {
'gn_args': 'is_debug=false',
},
'release_bot': {
'mixins': ['release', 'static', 'dcheck_always_on', 'goma'],
},
'shared': {
'gn_args': 'is_component_build=true',
'gyp_defines': 'component=shared_library',
},
'static': {
'gn_args': 'is_component_build=false',
'gyp_defines': 'component=static_library',
},
'swarming': {
'gn_args': '',
'gyp_defines': 'test_isolation_mode=prepare',
},
'syzyasan': {
'gn_args': 'is_syzyasan=true',
'gyp_defines': 'syzyasan=1'
},
'tsan': {
'gn_args': 'is_tsan=true',
'gyp_defines': 'tsan=1',
},
'ubsan': {
'gn_args': 'is_ubsan=true',
'gyp_defines': 'ubsan=1',
},
'ubsan_vptr': {
'gn_args': 'is_ubsan_vptr=true',
'gyp_defines': 'ubsan_vptr=1',
},
'x64': {
'gn_args': 'target_cpu="x64"',
'gyp_defines': 'target_arch=x64',
},
'x86': {
'gn_args': 'target_cpu="x86"',
'gyp_defines': 'target_arch=ia32',
},
},
}