# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/features.gni")
import("//build/config/sanitizers/sanitizers.gni")

# Be very specific here so that our static initializer count does not vary
# between bots. This target will cause release bots to fail if the count
# changes in either direction, and so should be updated when static initializers
# are removed.
if (current_toolchain == default_toolchain &&
    (!is_debug && !using_sanitizer && proprietary_codecs)) {
  # Define expectations only for target_cpu covered by trybots.
  if (target_cpu == "arm") {
    expected_static_initializer_count = 6
  } else if (target_cpu == "arm64") {
    expected_static_initializer_count = 5
  }
}
