# 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_bot_arm_device',
      'iOS32 Release': 'ios_gyp_release_bot_arm_device',
      'iOS64 Debug': 'ios_gyp_debug_bot_arm64_device',
      'iOS64 Release': 'ios_gyp_release_bot_arm64_device',
      'iOS32 Debug Simulator': 'ios_gyp_debug_bot_x86',
      'iOS64 Debug Simulator': 'ios_gyp_debug_bot_x64',
      'iOS64 Debug (GN)': 'ios_gn_debug_bot_arm64_device',
      'iOS64 Release (GN)': 'ios_gn_release_bot_arm64_device',

      # Linux
      'Linux32 ARM': 'gyp_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_openh264_debug_bot_x64',
      'Linux64 Release (GN)': 'gn_openh264_release_bot_x64',
    },
    'tryserver.webrtc': {
      # iOS
      'ios_dbg': 'ios_gyp_debug_trybot_arm_device',
      'ios_rel': 'ios_gyp_release_trybot_arm_device',
      'ios_arm64_dbg': 'ios_gyp_debug_trybot_arm64_device',
      'ios_arm64_rel': 'ios_gyp_release_trybot_arm64_device',
      'ios32_sim_dbg': 'ios_gyp_debug_trybot_x86',
      'ios64_sim_dbg': 'ios_gyp_debug_trybot_x64',
      'ios64_gn_dbg': 'ios_gn_debug_trybot_arm64_device',
      'ios64_gn_rel': 'ios_gn_release_trybot_arm64_device',

      # Linux
      'linux_compile_dbg': 'gyp_debug_trybot_x64',
      'linux_compile_rel': 'gyp_release_trybot_x64',
      'linux_dbg': 'gyp_debug_trybot_x64',
      'linux_rel': 'gyp_release_trybot_x64',
      'linux_gn_dbg': 'gn_openh264_debug_trybot_x64',
      'linux_gn_rel': 'gn_openh264_release_trybot_x64',
      'linux_arm': 'gyp_release_trybot_arm',
      'linux_asan': 'gyp_asan_lsan_clang_release_trybot_x64',
      'linux_memcheck': 'gyp_memcheck_release_trybot_x64',
      'linux_msan': 'gyp_msan_clang_release_trybot_x64',
      'linux_tsan2': 'gyp_tsan_clang_release_trybot_x64',
      'linux_ubsan': 'gyp_ubsan_clang_release_trybot_x64',
      'linux_ubsan_vptr': 'gyp_ubsan_vptr_clang_release_trybot_x64',
      'linux_baremetal': 'gyp_release_trybot_x64',
      'linux_swarming': 'swarming_gyp_debug_trybot_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_bot_arm64_device': [
      'ios', 'gn', 'ios_debug_bot', 'arm64', 'device'
    ],
    'ios_gn_release_bot_arm64_device': [
      'ios', 'gn', 'ios_release_bot', 'arm64', 'device'
    ],
    'ios_gyp_debug_bot_arm_device': [
      'ios', 'gyp', 'ios_debug_bot', 'arm', 'device'
    ],
    'ios_gyp_release_bot_arm_device': [
      'ios', 'gyp', 'ios_release_bot', 'arm', 'device'
    ],
    'ios_gyp_debug_bot_arm64_device': [
      'ios', 'gyp', 'ios_debug_bot', 'arm64', 'device'
    ],
    'ios_gyp_release_bot_arm64_device': [
      'ios', 'gyp', 'ios_release_bot', 'arm64', 'device'
    ],
    'ios_gyp_debug_bot_x86': [
      'ios', 'gyp', 'ios_debug_bot', 'x86'
    ],
    'ios_gyp_debug_bot_x64': [
      'ios', 'gyp', 'ios_release_bot', 'x64'
    ],
    # iOS trybots
    'ios_gn_debug_trybot_arm64_device': [
      'ios', 'gn', 'ios_debug_trybot', 'arm64', 'device'
    ],
    'ios_gn_release_trybot_arm64_device': [
      'ios', 'gn', 'ios_release_trybot', 'arm64', 'device'
    ],
    'ios_gyp_debug_trybot_arm_device': [
      'ios', 'gyp', 'ios_debug_trybot', 'arm', 'device'
    ],
    'ios_gyp_release_trybot_arm_device': [
      'ios', 'gyp', 'ios_release_trybot', 'arm', 'device'
    ],
    'ios_gyp_debug_trybot_arm64_device': [
      'ios', 'gyp', 'ios_debug_trybot', 'arm64', 'device'
    ],
    'ios_gyp_release_trybot_arm64_device': [
      'ios', 'gyp', 'ios_release_trybot', 'arm64', 'device'
    ],
    'ios_gyp_debug_trybot_x86': [
      'ios', 'gyp', 'ios_debug_trybot', 'x86'
    ],
    'ios_gyp_debug_trybot_x64': [
      'ios', 'gyp', 'ios_release_trybot', 'x64'
    ],

    # Linux
    'gyp_release_bot_arm': [
      'gyp', 'release_bot', 'arm'
    ],
    'gyp_debug_bot_x86': [
      'gyp', 'debug_bot', 'x86'
    ],
    'gyp_release_bot_x86': [
      'gyp', 'release_bot', 'x86'
    ],
    'gyp_debug_bot_x64': [
      'gyp', 'debug_bot', 'x64'
    ],
    'gyp_release_bot_x64': [
      'gyp', 'release_bot', 'x64'
    ],
    'gyp_asan_lsan_clang_release_bot_x64': [
      'gyp', 'asan', 'lsan', 'clang', 'release_bot', 'x64'
    ],
    'gyp_memcheck_release_bot_x64': [
      'gyp', 'memcheck', 'release_bot', 'x64'
    ],
    'gyp_msan_clang_release_bot_x64': [
      'gyp', 'msan', 'clang', 'release_bot', 'x64'
    ],
    'gyp_tsan_clang_release_bot_x64': [
      'gyp', 'tsan', 'clang', 'release_bot', 'x64'
    ],
    'gyp_ubsan_clang_release_bot_x64': [
      'gyp', 'ubsan', 'clang', 'release_bot', 'x64'
    ],
    'gyp_ubsan_vptr_clang_release_bot_x64': [
      'gyp', 'ubsan_vptr', 'clang', 'release_bot', 'x64'
    ],
    'gn_openh264_debug_bot_x64': [
      'gn', 'openh264', 'debug_bot', 'x64'
    ],
    'gn_openh264_release_bot_x64': [
      'gn', 'openh264', 'release_bot', 'x64'
    ],
    # Linux trybot
    'gyp_release_trybot_arm': [
      'gyp', 'release_trybot', 'arm'
    ],
    'gyp_debug_trybot_x64': [
      'gyp', 'debug_trybot', 'x64'
    ],
    'gyp_release_trybot_x64': [
      'gyp', 'release_trybot', 'x64'
    ],
    'gyp_asan_lsan_clang_release_trybot_x64': [
      'gyp', 'asan', 'lsan', 'clang', 'release_trybot', 'x64'
    ],
    'gyp_memcheck_release_trybot_x64': [
      'gyp', 'memcheck', 'release_trybot', 'x64'
    ],
    'gyp_msan_clang_release_trybot_x64': [
      'gyp', 'msan', 'clang', 'release_trybot', 'x64'
    ],
    'gyp_tsan_clang_release_trybot_x64': [
      'gyp', 'tsan', 'clang', 'release_trybot', 'x64'
    ],
    'gyp_ubsan_clang_release_trybot_x64': [
      'gyp', 'ubsan', 'clang', 'release_trybot', 'x64'
    ],
    'gyp_ubsan_vptr_clang_release_trybot_x64': [
      'gyp', 'ubsan_vptr', 'clang', 'release_trybot', 'x64'
    ],
    'gn_openh264_debug_trybot_x64': [
      'gn', 'openh264', 'debug_trybot', 'x64'
    ],
    'gn_openh264_release_trybot_x64': [
      'gn', 'openh264', 'release_trybot', 'x64'
    ],
    'swarming_gyp_debug_trybot_x64': [
      'swarming', 'gyp', 'debug', 'debug_trybot', 'x64'
    ]
  },

  # 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': {
    'ios': {
      'gn_args': 'target_os="ios"',
      'gyp_defines': 'OS=ios',
    },

    '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',
    },

    '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_trybot': {
      'mixins': ['debug_bot', 'dcheck_always_on'],
    },

    'device': {
      'gn_args': 'ios_enable_code_signing=false',
      'gyp_defines': 'chromium_ios_signing=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_debug_bot': {
      'mixins': ['debug', 'shared']
    },

    'ios_debug_trybot': {
      'mixins': ['ios_debug_bot', 'dcheck_always_on']
    },

    'ios_release_bot': {
      'mixins': ['release', 'static']
    },

    'ios_release_trybot': {
      'mixins': ['ios_release_bot', 'dcheck_always_on']
    },

    'lsan': {
      'gn_args': 'is_lsan=true',
      'gyp_defines': 'lsan=1',
    },

    'memcheck': {
      'gyp_defines': 'build_for_tool=memcheck',
    },

    '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'),
    },

    'tsan': {
      'gn_args': 'is_tsan=true',
      'gyp_defines': 'tsan=1',
    },

    'openh264': {
      'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
      'gyp_defines': 'ffmpeg_branding=Chrome rtc_use_h264=1',
    },

    'release': {
      'gn_args': 'is_debug=false',
    },

    'release_bot': {
      'mixins': ['release', 'static', 'goma'],
    },

    'release_trybot': {
      'mixins': ['release_bot', 'dcheck_always_on'],
    },

    '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',
    },

    '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',
    },
  },
}
