# Copyright 2015 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("//tools/grit/repack.gni")
import("webview_repack_locales_list.gni")

# Wraps repack_locales(), setting the source_patterns and deps required for
# Chrome.
template("webview_repack_locales") {
  repack_locales(target_name) {
    forward_variables_from(invoker, "*")
    if (!defined(deps)) {
      deps = []
    }

    # Adding webview specific pak file? You should add it to
    # webview_repack_locales_source_patterns, so it is also included in
    # Monochrome.

    source_patterns = [
      "${root_gen_dir}/android_webview/components_strings_",
      "${root_gen_dir}/content/app/strings/content_strings_",
      "${root_gen_dir}/ui/strings/app_locale_settings_",
    ]
    deps += [
      "//android_webview:generate_components_strings",
      "//content/app/strings",
      "//ui/strings:app_locale_settings",
    ]
    source_patterns += webview_repack_locales_source_patterns
    deps += webview_repack_locales_deps
    output_dir = "$root_out_dir/android_webview/locales"
  }
}
