// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package {
    // http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // the below license kinds from "system_timezone_license":
    //   legacy_notice
    default_applicable_licenses: ["system_timezone_license"],
}

prebuilt_usr_share {
    name: "tz_version",
    src: "tz_version",
    sub_dir: "zoneinfo",
}

// A host version of the tz_version module for use by
// hostdex rules.

prebuilt_usr_share_host {
    name: "tz_version_host",
    src: "tz_version",
    filename_from_src: true,
    sub_dir: "zoneinfo",
    target: {
        darwin: {
            enabled: false,
        },
    },
}

// Module definition producing a tz_version prebuilt file in
// /system/etc/tzdata_module/etc/tz for standalone ART testing purposes.
// This is a temporary change needed until the ART Buildbot and Golem both fully
// support the Runtime APEX (see b/121117762). This module should never
// be shipped by default (i.e. should never be part of `PRODUCT_PACKAGE`.)

// TODO(b/121117762, b/129332183): Remove this module definition when
// the ART Buildbot and Golem have full support for the Time Zone Data APEX.
prebuilt_etc {
    name: "tz_version-art-test-tzdata",
    src: "tz_version",
    filename_from_src: true,
    sub_dir: "tzdata_module/etc/tz",
}
