# 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")

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

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

group("config") {
  public_deps = [ "intl_services:config" ]
}

resource("icudtl") {
  sources = [ "//third_party/icu/common/icudtl.dat" ]
  outputs = [ "data/icudtl.dat" ]
}
