# Copyright 2019 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/components.gni")
import("//src/lib/icu/tzdata/icu_tzdata_config_data.gni")

group("tz_version_parrot") {
  testonly = true
  deps = [
    "cpp",
    "rust",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "cpp:tests",
    "rust:tests",
  ]
}

# [START tzdata_config]
# Build rule to provide system TZData for the given package
icu_tzdata_config_data("icu_tz_data_for_tz_version_parrot") {
  for_pkg = "tz_version_parrot"
}

# [END tzdata_config]

# Locally packaged TZData resource
resource("tz_version_parrot_resources") {
  sources = [ "newer_revision.txt" ]
  outputs = [ "data/{{source_file_part}}" ]
}
