# Copyright 2014 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/grit_rule.gni")

# Meta target that includes both ui_strings and app_locale_settings. Most
# targets want both. You can depend on the individually if you need to.
group("strings") {
  deps = [
    ":ui_strings",
    ":app_locale_settings",
  ]
}

grit("ui_strings") {
  source = "ui_strings.grd"
  use_qualified_include = true
  outputs = [
    "grit/ui_strings.h",
    "ui_strings_am.pak",
    "ui_strings_ar.pak",
    "ui_strings_bg.pak",
    "ui_strings_bn.pak",
    "ui_strings_ca.pak",
    "ui_strings_cs.pak",
    "ui_strings_da.pak",
    "ui_strings_de.pak",
    "ui_strings_el.pak",
    "ui_strings_en-GB.pak",
    "ui_strings_en-US.pak",
    "ui_strings_es.pak",
    "ui_strings_es-419.pak",
    "ui_strings_et.pak",
    "ui_strings_fa.pak",
    "ui_strings_fake-bidi.pak",
    "ui_strings_fi.pak",
    "ui_strings_fil.pak",
    "ui_strings_fr.pak",
    "ui_strings_gu.pak",
    "ui_strings_he.pak",
    "ui_strings_hi.pak",
    "ui_strings_hr.pak",
    "ui_strings_hu.pak",
    "ui_strings_id.pak",
    "ui_strings_it.pak",
    "ui_strings_ja.pak",
    "ui_strings_kn.pak",
    "ui_strings_ko.pak",
    "ui_strings_lt.pak",
    "ui_strings_lv.pak",
    "ui_strings_ml.pak",
    "ui_strings_mr.pak",
    "ui_strings_ms.pak",
    "ui_strings_nl.pak",
    "ui_strings_nb.pak",
    "ui_strings_pl.pak",
    "ui_strings_pt-BR.pak",
    "ui_strings_pt-PT.pak",
    "ui_strings_ro.pak",
    "ui_strings_ru.pak",
    "ui_strings_sk.pak",
    "ui_strings_sl.pak",
    "ui_strings_sr.pak",
    "ui_strings_sv.pak",
    "ui_strings_sw.pak",
    "ui_strings_ta.pak",
    "ui_strings_te.pak",
    "ui_strings_th.pak",
    "ui_strings_tr.pak",
    "ui_strings_uk.pak",
    "ui_strings_vi.pak",
    "ui_strings_zh-CN.pak",
    "ui_strings_zh-TW.pak",
  ]
}

grit("app_locale_settings") {
  source = "app_locale_settings.grd"
  use_qualified_include = true
  outputs = [
    "grit/app_locale_settings.h",
    "app_locale_settings_am.pak",
    "app_locale_settings_ar.pak",
    "app_locale_settings_bg.pak",
    "app_locale_settings_bn.pak",
    "app_locale_settings_ca.pak",
    "app_locale_settings_cs.pak",
    "app_locale_settings_da.pak",
    "app_locale_settings_de.pak",
    "app_locale_settings_el.pak",
    "app_locale_settings_en-GB.pak",
    "app_locale_settings_en-US.pak",
    "app_locale_settings_es.pak",
    "app_locale_settings_es-419.pak",
    "app_locale_settings_et.pak",
    "app_locale_settings_fa.pak",
    "app_locale_settings_fake-bidi.pak",
    "app_locale_settings_fi.pak",
    "app_locale_settings_fil.pak",
    "app_locale_settings_fr.pak",
    "app_locale_settings_gu.pak",
    "app_locale_settings_he.pak",
    "app_locale_settings_hi.pak",
    "app_locale_settings_hr.pak",
    "app_locale_settings_hu.pak",
    "app_locale_settings_id.pak",
    "app_locale_settings_it.pak",
    "app_locale_settings_ja.pak",
    "app_locale_settings_kn.pak",
    "app_locale_settings_ko.pak",
    "app_locale_settings_lt.pak",
    "app_locale_settings_lv.pak",
    "app_locale_settings_ml.pak",
    "app_locale_settings_mr.pak",
    "app_locale_settings_ms.pak",
    "app_locale_settings_nl.pak",
    "app_locale_settings_nb.pak",
    "app_locale_settings_pl.pak",
    "app_locale_settings_pt-BR.pak",
    "app_locale_settings_pt-PT.pak",
    "app_locale_settings_ro.pak",
    "app_locale_settings_ru.pak",
    "app_locale_settings_sk.pak",
    "app_locale_settings_sl.pak",
    "app_locale_settings_sr.pak",
    "app_locale_settings_sv.pak",
    "app_locale_settings_sw.pak",
    "app_locale_settings_ta.pak",
    "app_locale_settings_te.pak",
    "app_locale_settings_th.pak",
    "app_locale_settings_tr.pak",
    "app_locale_settings_uk.pak",
    "app_locale_settings_vi.pak",
    "app_locale_settings_zh-CN.pak",
    "app_locale_settings_zh-TW.pak",
  ]
}
