# Copyright 2020 The Fuchsia 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/dist/resource.gni")
import("//build/icu/third_party_icu_headers.gni")

group("intl") {
  testonly = true
  public_deps = [
    "example",
    "intl_services",
    "strings_to_fidl",
    "strings_to_json",
    "time_zone_info_service",
    "tzdata_provider",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "intl_services:tests",
    "strings_to_fidl:tests",
    "strings_to_json:tests",
    "time_zone_info_service:tests",
    "tzdata_provider:tests",
  ]
}

# For targets that use icu flavoring, e.g. icu_fuchsia_component, use
#
# icu_deps = [ "//src/lib/icu:icudtl" ]
#
# directly instead of:
#
# deps = [ "//src/intl:icudtl" ]
group("icudtl") {
  public_deps = [ "//src/lib/icu:icudtl" ]
}

group("icudtl_root") {
  public_deps = [ "//src/lib/icu:icudtl_root" ]
}
