# 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 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',
      'iOS32 Release': 'ios',
      'iOS64 Debug': 'ios',
      'iOS64 Release': 'ios',
      'iOS32 Sim Debug (iOS 9.0)': 'ios',
      'iOS64 Sim Debug (iOS 9.0)': 'ios',
      'iOS64 Sim Debug (iOS 10.0)': 'ios',

      # Mac
      'Mac64 Debug': 'debug_bot_x64',
      'Mac64 Release': 'release_bot_x64',
      'Mac Asan': 'mac_asan_clang_release_bot_x64',

      # Linux
      'Linux32 Debug': 'no_h264_debug_bot_x86',
      'Linux32 Release': 'release_bot_x86',
      'Linux32 Debug (ARM)': 'debug_bot_arm',
      'Linux32 Release (ARM)': 'release_bot_arm',
      'Linux64 Debug': 'debug_bot_x64',
      'Linux64 Release': 'release_bot_x64',
      'Linux64 Builder': 'pure_release_bot_x64',
      'Linux64 Debug (ARM)': 'debug_bot_arm64',
      'Linux64 Release (ARM)': 'release_bot_arm64',
      'Linux64 Release (GCC)': 'gcc_release_bot_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',
      'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64',
      # "More configs" bots will build all the following configs in sequence.
      # This is using MB's "phases" feature.
      'Linux (more configs)': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_x64',
        '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',
      },

      # Android
      'Android32 (M Nexus5X)': 'android_release_bot_arm',
      'Android32 (M Nexus5X)(dbg)': 'android_debug_static_bot_arm',
      'Android32 Builder arm': 'android_pure_release_bot_arm',
      'Android64 (M Nexus5X)': 'android_release_bot_arm64',
      'Android64 (M Nexus5X)(dbg)': 'android_debug_static_bot_arm64',
      'Android64 Builder arm64': 'android_pure_release_bot_arm64',
      'Android32 Builder x86': 'android_release_bot_x86',
      'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86',
      'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64',
      'Android32 (more configs)': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_android_arm',
        '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',
      },

      # Windows
      'Win32 Debug': 'win_msvc_debug_bot_x86',
      'Win32 Release': 'win_msvc_release_bot_x86',
      'Win64 Debug': 'win_msvc_debug_bot_x64',
      'Win64 Release': 'win_msvc_release_bot_x64',
      'Win32 Debug (Clang)': 'win_clang_debug_bot_x86',
      'Win32 Release (Clang)': 'win_clang_release_bot_x86',
      'Win64 Debug (Clang)': 'win_clang_debug_bot_x64',
      'Win64 Release (Clang)': 'win_clang_release_bot_x64',
      'Win32 ASan': 'win_asan_clang_release_bot_x86',
      'Win (more configs)': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_x86',
        '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_x86',
      },
    },
    'client.webrtc.perf': {
      # Android
      'Android32 Builder': 'perf_android_release_bot_arm',
      'Android64 Builder': 'perf_android_release_bot_arm64',
      'Android32 Tests (J Nexus4)': 'none',
      'Android32 Tests (K Nexus5)': 'none',
      'Android32 Tests (L Nexus5)': 'none',
      'Android32 Tests (L Nexus6)': 'none',
      'Android32 Tests (L Nexus7.2)': 'none',
      'Android64 Tests (L Nexus9)': 'none',
      'Linux Trusty': 'perf_release_bot_x64',
      'Mac 10.11': 'perf_release_bot_x64',
      'Win7': 'perf_release_bot_x86',
    },
    'client.webrtc.fyi': {
      # Mac
      'Mac (swarming)': 'release_bot_x64',

      # Android
      'Android Perf (swarming)': 'perf_android_release_bot_arm',
      'Android ASan (swarming)': 'android_asan_shared_release_bot_arm',
      # Windows
      'Win (swarming)': 'release_bot_x86',
      'Win64 Debug (Win8)': 'debug_bot_x64',
      'Win64 Debug (Win10)': 'debug_bot_x64',
    },
    'chromium.infra.codesearch': {
      'codesearch-gen-webrtc-android': {
        'android': 'android_debug_static_bot_arm',
      },
      'codesearch-gen-webrtc-linux': {
        'linux': 'codesearch_gen_linux_bot',
      }
    },
    'internal.client.webrtc': {
      'iOS64 Debug': 'ios',
      'iOS64 Perf': 'ios',
      'iOS64 Release': 'ios',
    },
    'internal.tryserver.webrtc': {
      'ios_arm64_dbg': 'ios',
      'ios_arm64_rel': 'ios',
    },
    'tryserver.webrtc': {
      # iOS
      'ios_dbg': 'ios',
      'ios_rel': 'ios',
      'ios_arm64_dbg': 'ios',
      'ios_arm64_rel': 'ios',
      'ios32_sim_ios9_dbg': 'ios',
      'ios64_sim_ios9_dbg': 'ios',
      'ios64_sim_ios10_dbg': 'ios',

      # Mac
      'mac_compile_dbg': 'debug_bot_x64',
      'mac_compile_rel': 'pure_release_bot_x64',
      'mac_dbg': 'debug_bot_x64',
      'mac_rel': 'release_bot_x64',
      'mac_asan': 'mac_asan_clang_release_bot_x64',
      'mac_experimental': 'release_bot_x64',

      # Linux
      'linux_compile_dbg': 'debug_bot_x64',
      'linux_compile_rel': 'pure_release_bot_x64',
      'linux_dbg': 'debug_bot_x64',
      'linux_rel': 'release_bot_x64',
      'linux_arm64_dbg': 'debug_bot_arm64',
      'linux_arm64_rel': 'release_bot_arm64',
      'linux32_dbg': 'no_h264_debug_bot_x86',
      'linux32_rel': 'release_bot_x86',
      'linux32_arm_dbg': 'debug_bot_arm',
      'linux32_arm_rel': 'release_bot_arm',
      'linux_asan': 'asan_lsan_clang_release_bot_x64',
      'linux_gcc_rel': 'gcc_release_bot_x64',
      'linux_msan': 'msan_clang_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_experimental': 'release_bot_x64',
      'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64',
      'linux_more_configs': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_x64',
        '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',
      },

      # Android
      'android_compile_dbg': 'android_debug_static_bot_arm',
      'android_compile_rel': 'android_pure_release_bot_arm',
      'android_compile_arm64_dbg': 'android_debug_static_bot_arm64',
      'android_compile_arm64_rel': 'android_pure_release_bot_arm64',
      'android_compile_x86_dbg': 'android_debug_static_bot_x86',
      'android_compile_x86_rel': 'android_release_bot_x86',
      'android_compile_x64_dbg': 'android_debug_static_bot_x64',
      'android_dbg': 'android_debug_static_bot_arm',
      'android_rel': 'android_release_bot_arm',
      'android_arm64_rel': 'android_release_bot_arm64',
      'android_experimental': 'android_release_bot_arm',
      'android_more_configs': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_android_arm',
        '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',
      },

      # Windows
      'win_compile_dbg': 'debug_bot_x86',
      'win_compile_rel': 'pure_release_bot_x86',
      'win_compile_x64_dbg': 'debug_bot_x64',
      'win_compile_x64_rel': 'pure_release_bot_x64',
      'win_dbg': 'win_msvc_debug_bot_x86',
      'win_rel': 'win_msvc_release_bot_x86',
      'win_x64_dbg': 'win_msvc_debug_bot_x64',
      'win_x64_rel': 'win_msvc_release_bot_x64',
      'win_clang_dbg': 'win_clang_debug_bot_x86',
      'win_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_asan': 'win_asan_clang_release_bot_x86',
      'win_experimental': 'release_bot_x86',
      'win_x64_win8': 'debug_bot_x64',
      'win_x64_win10': 'debug_bot_x64',
      'win_more_configs': {
        'intelligibility_enhancer_no_include_tests':
          'intelligibility_enhancer_no_include_tests_x86',
        '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_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': {
    # Linux, Mac and Windows
    'gcc_release_bot_x64': [
      'gn', 'gcc', 'release_bot', 'x64', 'no_rtc_tests'
    ],
    # TOOD(kjellander): Restore Goma for this when crbug.com/726706 is fixed.
    'debug_bot_arm': [
      'gn', 'openh264', 'debug', 'arm'
    ],
    'release_bot_arm': [
      'gn', 'openh264', 'release_bot', 'arm'
    ],
    'debug_bot_arm64': [
      'gn', 'openh264', 'debug_bot', 'arm64'
    ],
    'release_bot_arm64': [
      'gn', 'openh264', 'release_bot', 'arm64'
    ],
    'asan_lsan_clang_release_bot_x64': [
      'gn', 'asan', 'lsan', 'clang', 'openh264', 'release_bot', 'x64'
    ],
    'msan_clang_release_bot_x64': [
      'gn', 'msan', 'clang', 'openh264', 'release_bot', 'x64'
    ],
    'tsan_clang_release_bot_x64': [
      'gn', 'tsan', 'clang', 'openh264', 'release_bot', 'x64'
    ],
    'ubsan_clang_release_bot_x64': [
      'gn', 'ubsan', 'clang', 'openh264', 'release_bot', 'x64'
    ],
    'ubsan_vptr_clang_release_bot_x64': [
      'gn', 'ubsan_vptr', 'clang', 'openh264', 'release_bot', 'x64'
    ],
    'debug_bot_x86': [
      'gn', 'openh264', 'debug_bot', 'x86'
    ],
    'no_h264_debug_bot_x86': [
      'gn', 'debug_bot', 'x86'
    ],
    'release_bot_x86': [
      'gn', 'openh264', 'release_bot', 'x86'
    ],
    'debug_bot_x64': [
      'gn', 'openh264', 'debug_bot', 'x64'
    ],
    'codesearch_gen_linux_bot': [
      'gn', 'openh264', 'debug_bot', 'minimal_symbols'
    ],
    'release_bot_x64': [
      'gn', 'openh264', 'release_bot', 'x64'
    ],
    'pure_release_bot_x86': [
      'gn', 'openh264', 'pure_release_bot', 'x86'
    ],
    'pure_release_bot_x64': [
      'gn', 'openh264', 'pure_release_bot', 'x64'
    ],
    'perf_release_bot_x86': [
      'gn', 'openh264', 'release', 'goma', 'x86'
    ],
    'perf_release_bot_x64': [
      'gn', 'openh264', 'release', 'goma', 'x64'
    ],
    'libfuzzer_asan_release_bot_x64': [
      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264', 'release_bot',
      'x64', 'no_rtc_tests'
    ],

    # iOS
    # The 'ios' config is just used for auditing. iOS bots
    # use the ios recipes and look up their GN arguments via files checked in
    # under //tools_webrtc/ios/bots. It is an error to actually use one of these
    # configs to generate the build files.
    'ios': [ 'error'],

    # Windows
    'win_clang_debug_bot_x86': [
      'gn', 'clang', 'openh264', 'debug_bot', 'x86',
    ],
    'win_clang_release_bot_x86': [
      'gn', 'clang', 'openh264', 'release_bot', 'x86',
    ],
    'win_clang_debug_bot_x64': [
      'gn', 'clang', 'openh264', 'debug_bot', 'x64',
    ],
    'win_clang_release_bot_x64': [
      'gn', 'clang', 'openh264', 'release_bot', 'x64',
    ],
    'win_msvc_debug_bot_x86': [
      'gn', 'no_clang', 'openh264', 'debug_bot', 'x86', 'no_lld',
    ],
    'win_msvc_release_bot_x86': [
      'gn', 'no_clang', 'openh264', 'release_bot', 'x86', 'no_lld',
    ],
    'win_msvc_debug_bot_x64': [
      'gn', 'no_clang', 'openh264', 'debug_bot', 'x64', 'no_lld'
    ],
    'win_msvc_release_bot_x64': [
      'gn', 'no_clang', 'openh264', 'release_bot', 'x64', 'no_lld',
    ],
    'win_asan_clang_release_bot_x86': [
      'gn', 'asan', 'clang',  'full_symbols', 'openh264', 'release_bot', 'x86',
      'win_fastlink',
    ],

    # Mac
    'mac_asan_clang_release_bot_x64': [
      'gn', 'asan', 'clang', 'openh264', 'release_bot', 'x64',
    ],

    # Android
    'android_debug_static_bot_arm': [
      'android', 'gn', 'debug_static_bot', 'arm'
    ],
    'android_release_bot_arm': [
      'android', 'gn', 'release_bot', 'arm'
    ],
    'android_pure_release_bot_arm': [
      'android', 'gn', 'pure_release_bot', 'arm'
    ],
    'android_debug_static_bot_x86': [
      'android', 'gn', 'debug_static_bot', 'x86'
    ],
    'android_release_bot_x86': [
      'android', 'gn', 'release_bot', 'x86'
    ],
    'android_debug_static_bot_arm64': [
      'android', 'gn', 'debug_static_bot', 'arm64'
    ],
    'android_release_bot_arm64': [
      'android', 'gn', 'release_bot', 'arm64'
    ],
    'android_pure_release_bot_arm64': [
      'android', 'gn', 'pure_release_bot', 'arm64'
    ],
    'android_debug_static_bot_x64': [
      'android', 'gn', 'debug_static_bot', 'x64'
    ],
    'android_asan_shared_release_bot_arm': [
      'android', 'gn', 'asan', 'clang', 'release_bot', 'arm'
    ],
    'perf_android_release_bot_arm': [
      'android', 'gn', 'release', 'goma', 'arm'
    ],
    'perf_android_release_bot_arm64': [
      'android', 'gn', 'release', 'goma', 'arm64'
    ],

    # More configs
    'intelligibility_enhancer_no_include_tests_x64': [
      'debug_bot', 'x64', 'intelligibility_enhancer', 'no_include_tests'
    ],
    'bwe_test_logging_x64': [
      'debug_bot', 'x64', 'bwe_test_logging'
    ],
    'dummy_audio_file_devices_no_protobuf_x64': [
      'debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'
    ],
    'rtti_no_sctp_x64': [
      'debug_bot', 'x64', 'rtti', 'no_sctp'
    ],

    'intelligibility_enhancer_no_include_tests_x86': [
      'debug_bot', 'x86', 'intelligibility_enhancer', 'no_include_tests'
    ],
    'bwe_test_logging_x86': [
      'debug_bot', 'x86', 'bwe_test_logging'
    ],
    'dummy_audio_file_devices_no_protobuf_x86': [
      'debug_bot', 'x86', 'dummy_audio_file_devices', 'no_protobuf'
    ],
    'rtti_no_sctp_x86': [
      'debug_bot', 'x86', 'rtti', 'no_sctp'
    ],

    'intelligibility_enhancer_no_include_tests_android_arm': [
      'android', 'debug_static_bot', 'arm',
      'intelligibility_enhancer', 'no_include_tests'
    ],
    'bwe_test_logging_android_arm': [
      'android', 'debug_static_bot', 'arm', 'bwe_test_logging'
    ],
    'dummy_audio_file_devices_no_protobuf_android_arm': [
      'android', 'debug_static_bot', 'arm',
      'dummy_audio_file_devices', 'no_protobuf'
    ],
    'rtti_no_sctp_android_arm': [
      'android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'
    ],

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

    'arm': {
      'gn_args': 'target_cpu="arm"',
    },

    'arm64': {
      'gn_args': 'target_cpu="arm64"',
    },

    'asan': {
      'gn_args': 'is_asan=true',
    },

    # is_clang=true by default, this is only to guard from upstream changes.
    'clang': {
      'gn_args': 'is_clang=true',
    },

    'dcheck_always_on': {
      'gn_args': 'dcheck_always_on=true',
    },

    'debug': {
      'gn_args': 'is_debug=true',
    },

    'debug_bot': {
      'mixins': ['debug', 'goma'],
    },

    'debug_static_bot': {
      'mixins': ['debug', 'minimal_symbols', 'goma'],
    },

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

    'full_symbols': {
      'gn_args': 'symbol_level=2',
    },

    'gcc': {
      'gn_args': ('is_clang=false use_sysroot=false '
                  'treat_warnings_as_errors=false'),
    },

    'gn': {'type': 'gn'},

    'goma': {
      'gn_args': 'use_goma=true',
    },

    'libfuzzer': {
      'gn_args': 'use_libfuzzer=true',
    },

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

    'minimal_symbols': {
      'gn_args': 'symbol_level=1 strip_absolute_paths_from_debug_symbols=true',
    },

    'msan': {
      'gn_args': ('is_msan=true msan_track_origins=2 '
                  'use_prebuilt_instrumented_libraries=true'),
    },

    'no_clang': {
      'gn_args': 'is_clang=false',
    },

    'no_lld': {
      'gn_args': 'use_lld=false',
    },

    'no_rtc_tests': {
      'gn_args': 'rtc_include_tests=false',
    },

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

    'optimize_for_fuzzing': {
      'gn_args': 'optimize_for_fuzzing=true',
    },

    'pure_release_bot': {
      'mixins': ['release', 'goma'],
    },

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

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

    '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_fastlink': {
      'gn_args': 'is_win_fastlink=true',
    },

    'x64': {
      'gn_args': 'target_cpu="x64"',
    },

    'x86': {
      'gn_args': 'target_cpu="x86"',
    },

    'intelligibility_enhancer': {
      'gn_args': 'rtc_enable_intelligibility_enhancer=true',
    },

    'no_include_tests': {
      'gn_args': 'rtc_include_tests=false',
    },

    'bwe_test_logging': {
      'gn_args': 'rtc_enable_bwe_test_logging=true',
    },

    'dummy_audio_file_devices': {
      'gn_args': 'rtc_use_dummy_audio_file_devices=true',
    },

    'no_protobuf': {
      'gn_args': 'rtc_enable_protobuf=false',
    },

    'rtti': {
      'gn_args': 'use_rtti=true',
    },

    'no_sctp': {
      'gn_args': 'rtc_enable_sctp=false',
    },
  },
}
