| # Copyright 2016 Google Inc. All Rights Reserved. |
| # |
| # 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 |
| # |
| # https://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(features = [ |
| "header_modules", |
| "layering_check", |
| "parse_headers", |
| ]) |
| |
| licenses(["notice"]) |
| |
| ### libraries |
| |
| cc_library( |
| name = "civil_time", |
| srcs = ["src/civil_time_detail.cc"], |
| hdrs = [ |
| "include/cctz/civil_time.h", |
| ], |
| textual_hdrs = ["include/cctz/civil_time_detail.h"], |
| visibility = ["//visibility:public"], |
| deps = ["//absl/base:config"], |
| ) |
| |
| cc_library( |
| name = "time_zone", |
| srcs = [ |
| "src/time_zone_fixed.cc", |
| "src/time_zone_fixed.h", |
| "src/time_zone_format.cc", |
| "src/time_zone_if.cc", |
| "src/time_zone_if.h", |
| "src/time_zone_impl.cc", |
| "src/time_zone_impl.h", |
| "src/time_zone_info.cc", |
| "src/time_zone_info.h", |
| "src/time_zone_libc.cc", |
| "src/time_zone_libc.h", |
| "src/time_zone_lookup.cc", |
| "src/time_zone_posix.cc", |
| "src/time_zone_posix.h", |
| "src/tzfile.h", |
| "src/zone_info_source.cc", |
| ], |
| hdrs = [ |
| "include/cctz/time_zone.h", |
| "include/cctz/zone_info_source.h", |
| ], |
| linkopts = select({ |
| "@platforms//os:osx": ["-Wl,-framework,CoreFoundation"], |
| "@platforms//os:ios": ["-Wl,-framework,CoreFoundation"], |
| "//conditions:default": [], |
| }), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":civil_time", |
| "//absl/base:config", |
| ] + select( |
| { |
| "//conditions:default": [], |
| }, |
| ), |
| ) |
| |
| ### tests |
| |
| test_suite( |
| name = "all_tests", |
| visibility = ["//visibility:public"], |
| ) |
| |
| cc_test( |
| name = "civil_time_test", |
| size = "small", |
| srcs = ["src/civil_time_test.cc"], |
| deps = [ |
| ":civil_time", |
| "//absl/base:config", |
| "@com_google_googletest//:gtest", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_test( |
| name = "time_zone_format_test", |
| size = "small", |
| srcs = ["src/time_zone_format_test.cc"], |
| data = [":zoneinfo"], |
| env = {"TZDIR": "absl/time/internal/cctz/testdata/zoneinfo"}, |
| tags = [ |
| "no_test_android_arm", |
| "no_test_android_arm64", |
| "no_test_android_x86", |
| "no_test_wasm", |
| ], |
| deps = [ |
| ":civil_time", |
| ":time_zone", |
| "//absl/base:config", |
| "@com_google_googletest//:gtest", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_test( |
| name = "time_zone_lookup_test", |
| size = "small", |
| timeout = "moderate", |
| srcs = ["src/time_zone_lookup_test.cc"], |
| data = [":zoneinfo"], |
| env = {"TZDIR": "absl/time/internal/cctz/testdata/zoneinfo"}, |
| tags = [ |
| "no_test_android_arm", |
| "no_test_android_arm64", |
| "no_test_android_x86", |
| "no_test_wasm", |
| ], |
| deps = [ |
| ":civil_time", |
| ":time_zone", |
| "//absl/base:config", |
| "@com_google_googletest//:gtest", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| ### benchmarks |
| |
| cc_test( |
| name = "cctz_benchmark", |
| srcs = [ |
| "src/cctz_benchmark.cc", |
| "src/time_zone_if.h", |
| "src/time_zone_impl.h", |
| "src/time_zone_info.h", |
| "src/tzfile.h", |
| ], |
| linkstatic = 1, |
| tags = ["benchmark"], |
| deps = [ |
| ":civil_time", |
| ":time_zone", |
| "//absl/base:config", |
| "@com_github_google_benchmark//:benchmark_main", |
| ], |
| ) |
| |
| ### examples |
| |
| ### binaries |
| |
| filegroup( |
| name = "zoneinfo", |
| srcs = glob(["testdata/zoneinfo/**"]), |
| visibility = ["//absl/time:__subpackages__"], |
| ) |