# 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 GN args in tryjob patches.

{
  # This is a map of buildbot builder group 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.
  'builder_groups': {
    # This is required because WebRTC mb.py overwrites the default configs
    # and Chromium's mb.py checks the default config contains 'chromium'.
    'chromium': {},
    'chromium.infra.codesearch': {
      'codesearch-gen-webrtc-android': {
        'android': 'android_debug_static_bot_arm',
      },
      'codesearch-gen-webrtc-linux': {
        'linux': 'codesearch_gen_linux_bot',
      }
    },
    'client.webrtc': {
      # Android
      'Android32': 'android_release_bot_arm',
      'Android32 (dbg)': 'android_debug_static_bot_arm',
      'Android32 (more configs)': {
        'bwe_test_logging': 'bwe_test_logging_android_arm',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_android_arm',
        'rtti_no_sctp': 'rtti_no_sctp_android_arm',
      },
      'Android32 Builder arm': 'android_pure_release_bot_arm',
      'Android32 Builder x86': 'android_release_bot_x86',
      'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86',
      'Android64': 'android_release_bot_arm64',
      'Android64 (dbg)': 'android_debug_static_bot_arm64',
      'Android64 Builder arm64': 'android_pure_release_bot_arm64',
      'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64',

      # Fuchsia
      'Fuchsia Builder': 'release_bot_x64_fuchsia',
      'Fuchsia Release': 'release_bot_x64_fuchsia',

      # Linux
      # "More configs" bots will build all the following configs in sequence.
      # This is using MB's "phases" feature.
      'Linux (more configs)': {
        'bwe_test_logging': 'bwe_test_logging_x64',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x64',
        'rtti_no_sctp': 'rtti_no_sctp_x64',
      },
      'Linux Asan': 'asan_lsan_clang_release_bot_x64',
      'Linux MSan': 'msan_clang_release_bot_x64',
      'Linux Tsan v2': 'tsan_clang_release_bot_x64',
      'Linux UBSan': 'ubsan_clang_release_bot_x64',
      'Linux UBSan vptr': 'ubsan_vptr_clang_release_bot_x64',
      'Linux32 Debug': 'no_h264_debug_bot_x86',
      'Linux32 Debug (ARM)': 'debug_bot_arm',
      'Linux32 Release': 'release_bot_x86',
      'Linux32 Release (ARM)': 'release_bot_arm',
      'Linux64 Builder': 'pure_release_bot_x64',
      'Linux64 Debug': 'debug_bot_x64',
      'Linux64 Debug (ARM)': 'debug_bot_arm64',
      'Linux64 Release': 'release_bot_x64',
      'Linux64 Release (ARM)': 'release_bot_arm64',
      'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64',

      # Mac
      'Mac Asan': 'mac_asan_clang_release_bot_x64',
      'Mac64 Builder': 'pure_release_bot_x64',
      'Mac64 Debug': 'debug_bot_x64',
      'Mac64 Release': 'release_bot_x64',
      'MacARM64 M1 Release': 'release_bot_arm64',
      'MacArm64 Builder': 'release_bot_arm64',

      # Windows
      'Win (more configs)': {
        'bwe_test_logging': 'bwe_test_logging_x86',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x86',
        'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
      },
      'Win32 Debug (Clang)': 'win_clang_debug_bot_x86',
      'Win32 Release (Clang)': 'win_clang_release_bot_x86',
      'Win64 ASan': 'win_asan_clang_release_bot_x64',
      'Win64 Builder (Clang)': 'win_clang_pure_release_bot_x64',
      'Win64 Debug (Clang)': 'win_clang_debug_bot_x64',
      'Win64 Release (Clang)': 'win_clang_release_bot_x64',

      # iOS
      'iOS Debug (simulator)': 'ios_debug_bot_x64',
      'iOS64 Debug': 'ios_debug_bot_arm64',
      'iOS64 Release': 'ios_release_bot_arm64',
    },
    'client.webrtc.fyi': {
      # Android
      'Android ASan (swarming)': 'android_asan_shared_release_bot_arm',
      'Android Perf (swarming)': 'android_pure_release_bot_arm',

      # Mac
      'Mac (swarming)': 'release_bot_x64',

      # Windows
      'Win (swarming)': 'release_bot_x86',
      'Win64 Debug (Win10)': 'debug_bot_x64',
      'Win64 Debug (Win8)': 'debug_bot_x64',
    },
    'client.webrtc.perf': {
      # These are here because testers need to gn gen + ninja for the
      # webrtc_dashboard_upload target (otherwise a tester would not need to
      # build anything).
      # TODO(http://crbug.com/1029452): Nuke these and isolate on builder
      # instead?
      'Perf Android32 (R Pixel5)': 'release_bot_x64',
      'Perf Android64 (R Pixel5)': 'release_bot_x64',
      'Perf Fuchsia': 'release_bot_x64_fuchsia',
      'Perf Linux Bionic': 'release_bot_x64',
      'Perf Linux Trusty': 'release_bot_x64',
      'Perf Mac 11': 'release_bot_x64',
      'Perf Mac M1 Arm64 12': 'release_bot_x64',
      'Perf Win 10': 'release_bot_x64',
    },
    'internal.client.webrtc': {
      'iOS64 Debug': 'ios_internal_debug_bot_arm64',
      'iOS64 Perf': 'ios_internal_pure_release_bot_arm64',
      'iOS64 Release': 'ios_internal_release_bot_arm64',
    },
    'tryserver.webrtc': {
      # Android
      'android_arm64_dbg': 'android_release_bot_arm64',
      'android_arm64_rel': 'android_release_bot_arm64',
      'android_arm_dbg': 'android_debug_static_bot_arm',
      'android_arm_more_configs': {
        'bwe_test_logging': 'bwe_test_logging_android_arm',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_android_arm',
        'rtti_no_sctp': 'rtti_no_sctp_android_arm',
	'disable_trace_events': 'disable_trace_events_android_arm',
      },
      'android_arm_rel': 'android_release_bot_arm',
      'android_compile_arm64_dbg': 'android_debug_static_bot_arm64',
      'android_compile_arm64_rel': 'android_pure_release_bot_arm64',
      'android_compile_arm_dbg': 'android_debug_static_bot_arm',
      'android_compile_arm_rel': 'android_pure_release_bot_arm',
      'android_compile_x64_dbg': 'android_debug_static_bot_x64',
      'android_compile_x64_rel': 'android_release_bot_x64',
      'android_compile_x86_dbg': 'android_debug_static_bot_x86',
      'android_compile_x86_rel': 'android_release_bot_x86',

      # Fuchsia
      'fuchsia_rel': 'release_bot_x64_fuchsia',

      # iOS
      'ios_compile_arm64_dbg': 'ios_debug_bot_arm64',
      'ios_compile_arm64_rel': 'ios_release_bot_arm64',
      'ios_dbg_simulator': 'ios_debug_bot_x64',

      # Linux
      'linux_asan': 'asan_lsan_clang_release_bot_x64',
      'linux_compile_arm64_dbg': 'debug_bot_arm64',
      'linux_compile_arm64_rel': 'release_bot_arm64',
      'linux_compile_arm_dbg': 'debug_bot_arm',
      'linux_compile_arm_rel': 'release_bot_arm',
      'linux_compile_dbg': 'debug_bot_x64',
      'linux_compile_rel': 'pure_release_bot_x64',
      'linux_compile_x86_dbg': 'debug_bot_x86',
      'linux_compile_x86_rel': 'pure_release_bot_x86',
      'linux_coverage': 'code_coverage_bot_x64',
      'linux_dbg': 'debug_bot_x64',
      'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64',
      'linux_more_configs': {
        'bwe_test_logging': 'bwe_test_logging_x64',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x64',
        'rtti_no_sctp': 'rtti_no_sctp_x64',
        'disable_trace_events': 'disable_trace_events_x64',
      },
      'linux_msan': 'msan_clang_release_bot_x64',
      'linux_rel': 'release_bot_x64',
      'linux_tsan2': 'tsan_clang_release_bot_x64',
      'linux_ubsan': 'ubsan_clang_release_bot_x64',
      'linux_ubsan_vptr': 'ubsan_vptr_clang_release_bot_x64',
      'linux_x86_dbg': 'no_h264_debug_bot_x86',
      'linux_x86_rel': 'release_bot_x86',

      # Mac
      'mac_asan': 'mac_asan_clang_release_bot_x64',
      'mac_compile_dbg': 'debug_bot_x64',
      'mac_compile_rel': 'pure_release_bot_x64',
      'mac_dbg': 'debug_bot_x64',
      'mac_dbg_m1': 'debug_bot_arm64',
      'mac_rel': 'release_bot_x64',
      'mac_rel_m1': 'release_bot_arm64',

      # Windows
      'win11_debug': 'win_clang_debug_bot_x64',
      'win11_release': 'win_clang_release_bot_x64',
      'win_asan': 'win_asan_clang_release_bot_x64',
      'win_compile_x64_clang_dbg': 'win_clang_debug_bot_x64',
      'win_compile_x64_clang_rel': 'win_clang_release_bot_x64',
      'win_compile_x86_clang_dbg': 'win_clang_debug_bot_x86',
      'win_compile_x86_clang_rel': 'win_clang_release_bot_x86',
      'win_x64_clang_dbg': 'win_clang_debug_bot_x64',
      'win_x64_clang_rel': 'win_clang_release_bot_x64',
      'win_x86_clang_dbg': 'win_clang_debug_bot_x86',
      'win_x86_clang_rel': 'win_clang_release_bot_x86',
      'win_x86_more_configs': {
        'bwe_test_logging': 'bwe_test_logging_x86',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x86',
        'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
        'disable_trace_events': 'disable_trace_events_x86',
      },
    }
  },

  # This is the list of configs that you can pass to mb; each config
  # represents a particular combination of 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 'release_bot' config).
  'configs': {
    'android_asan_shared_release_bot_arm':
    ['android', 'asan', 'clang', 'pure_release_bot', 'arm'],
    'android_debug_static_bot_arm': [
      'android',
      'debug_static_bot',
      'arm',
      'h265',
    ],
    'android_debug_static_bot_arm64': [
      'android',
      'debug_static_bot',
      'arm64',
      'h265',
    ],
    'android_debug_static_bot_x64': [
      'android',
      'debug_static_bot',
      'x64',
      'h265',
    ],
    'android_debug_static_bot_x86': [
      'android',
      'debug_static_bot',
      'x86',
      'h265',
    ],
    'android_pure_release_bot_arm': ['android', 'pure_release_bot', 'arm'],
    'android_pure_release_bot_arm64': ['android', 'pure_release_bot', 'arm64'],
    'android_release_bot_arm': [
      'android',
      'release_bot',
      'arm',
      'h265',
    ],
    'android_release_bot_arm64': [
      'android',
      'release_bot',
      'arm64',
      'h265',
    ],
    'android_release_bot_x64': [
      'android',
      'release_bot',
      'x64',
      'h265',
    ],
    'android_release_bot_x86': [
      'android',
      'release_bot',
      'x86',
      'h265',
     ],
    'asan_lsan_clang_release_bot_x64': [
      'asan',
      'lsan',
      'clang',
      'openh264',
      'pure_release_bot',
      'x64',
      'h265',
    ],
    'bwe_test_logging_android_arm':
    ['android', 'debug_static_bot', 'arm', 'bwe_test_logging'],
    'bwe_test_logging_x64': ['debug_bot', 'x64', 'bwe_test_logging'],
    'bwe_test_logging_x86': ['debug_bot', 'x86', 'bwe_test_logging'],
    'code_coverage_bot_x64': [
      'openh264', 'release_bot', 'x64', 'code_coverage',
      'partial_code_coverage_instrumentation', 'h265'
    ],
    'codesearch_gen_linux_bot':
    ['openh264', 'debug_bot', 'minimal_symbols', 'h265'],
    'debug_bot_arm': ['openh264', 'debug_bot', 'arm', 'h265'],
    'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64', 'h265'],
    'debug_bot_x64': ['openh264', 'debug_bot', 'x64', 'h265'],
    'debug_bot_x86': ['openh264', 'debug_bot', 'x86', 'h265'],
    'disable_trace_events_android_arm':
    ['android', 'arm', 'disable_trace_events', 'release_bot'],
    'disable_trace_events_x64':
    ['x64', 'disable_trace_events', 'release_bot'],
    'disable_trace_events_x86':
    ['x86', 'disable_trace_events', 'release_bot'],
    'dummy_audio_file_devices_no_protobuf_android_arm': [
      'android', 'debug_static_bot', 'arm', 'dummy_audio_file_devices',
      'no_protobuf'
    ],
    'dummy_audio_file_devices_no_protobuf_x64':
    ['debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'],
    'dummy_audio_file_devices_no_protobuf_x86':
    ['debug_bot', 'x86', 'dummy_audio_file_devices', 'no_protobuf'],
    'ios_debug_bot_arm64':
    ['ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'xctest'],
    'ios_debug_bot_x64': ['ios', 'debug_bot', 'x64', 'xctest'],
    'ios_internal_debug_bot_arm64': [
      'ios', 'debug_bot', 'arm64', 'ios_code_signing_identity_description',
      'xctest'
    ],
    'ios_internal_pure_release_bot_arm64': [
      'ios', 'pure_release_bot', 'arm64',
      'ios_code_signing_identity_description', 'xctest',
      'rtc_objc_test_prefix',
    ],
    'ios_internal_release_bot_arm64': [
      'ios', 'release_bot', 'arm64', 'ios_code_signing_identity_description',
      'xctest'
    ],
    'ios_release_bot_arm64': [
      'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'xctest',
    ],
    'libfuzzer_asan_release_bot_x64': [
      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264',
      'pure_release_bot', 'x64', 'h265'
    ],
    'mac_asan_clang_release_bot_x64': [
      'asan',
      'clang',
      'openh264',
      'pure_release_bot',
      'x64',
      'h265',
    ],
    'msan_clang_release_bot_x64':
    ['msan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'],
    'no_h264_debug_bot_x86': ['debug_bot', 'x86'],
    'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64', 'h265'],
    'pure_release_bot_x86': ['openh264', 'pure_release_bot', 'x86', 'h265'],
    'release_bot_arm': ['openh264', 'release_bot', 'arm', 'h265'],
    'release_bot_arm64': ['openh264', 'release_bot', 'arm64', 'h265'],
    'release_bot_x64': ['openh264', 'release_bot', 'x64', 'h265'],
    'release_bot_x64_fuchsia':
    ['openh264', 'release_bot', 'x64', 'fuchsia', 'h265'],
    'release_bot_x86': ['openh264', 'release_bot', 'x86', 'h265'],
    'rtti_no_sctp_android_arm':
    ['android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'],
    'rtti_no_sctp_no_unicode_win_x86':
    ['debug_bot', 'x86', 'rtti', 'no_sctp', 'win_undef_unicode'],
    'rtti_no_sctp_x64': ['debug_bot', 'x64', 'rtti', 'no_sctp'],
    'tsan_clang_release_bot_x64':
    ['tsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'],
    'ubsan_clang_release_bot_x64': [
      'ubsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'
    ],
    'ubsan_vptr_clang_release_bot_x64': [
      'ubsan_vptr', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'
    ],
    'win_asan_clang_release_bot_x64': [
      'asan',
      'clang',
      'full_symbols',
      'openh264',
      'pure_release_bot',
      'x64',
      'h265',
    ],
    'win_clang_debug_bot_x64': [
      'clang',
      'openh264',
      'debug_bot',
      'x64',
      'h265',
    ],
    'win_clang_debug_bot_x86': [
      'clang',
      'openh264',
      'debug_bot',
      'x86',
      'h265',
    ],
    'win_clang_pure_release_bot_x64': [
      'clang',
      'openh264',
      'pure_release_bot',
      'x64',
      'h265',
    ],
    'win_clang_release_bot_x64': [
      'clang',
      'openh264',
      'release_bot',
      'x64',
      'h265',
    ],
    'win_clang_release_bot_x86': [
      'clang',
      'openh264',
      'release_bot',
      'x86',
      'h265',
    ],
  },

  # 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"',
    },
    'arm': {
      'gn_args': 'target_cpu="arm"',
    },
    'arm64': {
      'gn_args': 'target_cpu="arm64"',
    },
    'asan': {
      'gn_args': 'is_asan=true',
    },
    'bwe_test_logging': {
      'gn_args': 'rtc_enable_bwe_test_logging=true',
    },
    # is_clang=true by default, this is only to guard from upstream changes.
    'clang': {
      'gn_args': 'is_clang=true',
    },
    'code_coverage': {
      'gn_args': 'use_clang_coverage=true',
    },
    'dcheck_always_on': {
      'gn_args': 'dcheck_always_on=true',
    },
    'dcheck_off': {
      'gn_args': 'dcheck_always_on=false',
    },
    'debug': {
      'gn_args': 'is_debug=true',
    },
    'debug_bot': {
      'mixins': ['debug', 'reclient', 'strict_field_trials'],
    },
    'debug_static_bot': {
      'mixins': ['debug', 'minimal_symbols', 'reclient', 'strict_field_trials'],
    },
    'disable_trace_events': {
      'gn_args': 'rtc_disable_trace_events=true',
    },
    'dummy_audio_file_devices': {
      'gn_args': 'rtc_use_dummy_audio_file_devices=true',
    },
    'fuchsia': {
      'gn_args': 'target_os="fuchsia"'
    },
    'full_symbols': {
      'gn_args': 'symbol_level=2',
    },
    'h265': {
      'gn_args': 'rtc_use_h265=true',
    },
    'ios': {
      'gn_args': 'target_os="ios"',
    },
    'ios_code_signing_identity_description': {
      'gn_args': 'ios_code_signing_identity_description="Apple Development"',
    },
    'libfuzzer': {
      'gn_args': 'use_libfuzzer=true',
    },
    'lsan': {
      'gn_args': 'is_lsan=true',
    },
    'minimal_symbols': {
      'gn_args': 'symbol_level=1',
    },
    'msan': {
      'gn_args': 'is_msan=true msan_track_origins=2'
                 ' instrumented_libraries_release = "focal"',
    },
    'no_ios_code_signing': {
      'gn_args': 'ios_enable_code_signing=false',
    },
    'no_protobuf': {
      'gn_args': 'rtc_enable_protobuf=false',
    },
    'no_sctp': {
      'gn_args': 'rtc_enable_sctp=false',
    },
    'openh264': {
      'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
    },
    'optimize_for_fuzzing': {
      'gn_args': 'optimize_for_fuzzing=true',
    },
    'partial_code_coverage_instrumentation': {
      'gn_args':
      'coverage_instrumentation_input_file="//.code-coverage/files_to_instrument.txt"'
    },
    # The 'pure_release_bot' configuration is for release bots that are doing a
    # 100% release build without DCHECKs while 'release_bot' is a partial
    # release configs since `dcheck_always_on` is set to true.
    'pure_release_bot': {
      'mixins': ['release', 'reclient', 'dcheck_off'],
    },
    'reclient': {
      'gn_args': 'use_remoteexec=true',
    },
    'release': {
      'gn_args': 'is_debug=false',
    },
    'release_bot': {
      'mixins': ['pure_release_bot', 'dcheck_always_on', 'strict_field_trials'],
    },
    'rtc_objc_test_prefix': {
      'gn_args': 'rtc_objc_prefix="RTC_TESTING"',
    },
    'rtti': {
      'gn_args': 'use_rtti=true',
    },
    'strict_field_trials': {
      'gn_args': 'rtc_strict_field_trials="dcheck"',
    },
    'tsan': {
      'gn_args': 'is_tsan=true',
    },
    'ubsan': {
      'gn_args': 'is_ubsan=true is_ubsan_no_recover=true',
    },
    'ubsan_vptr': {
      'gn_args': 'is_ubsan_vptr=true is_ubsan_no_recover=true',
    },
    'win_undef_unicode': {
      'gn_args': 'rtc_win_undef_unicode=true',
    },
    'x64': {
      'gn_args': 'target_cpu="x64"',
    },
    'x86': {
      'gn_args': 'target_cpu="x86"',
    },
    'xctest': {
      'gn_args': 'enable_run_ios_unittests_with_xctest=true',
    },
  },
}
