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

# Features used by targets inside and outside of |url|.
# For details see declare_args() in build/config/BUILDCONFIG.gn.
declare_args() {
  # Enables the use of ICU alternatives in lieu of ICU for the target toolchain.
  # The flag is used for Cronet to reduce the size of the Cronet binary.
  use_platform_icu_alternatives = false
}

# Never use platform icu for host toolchain.
# E.g. Don't apply this for host binaries when target_os = "android".
use_platform_icu_alternatives =
    use_platform_icu_alternatives && current_toolchain == default_toolchain
