# Copyright 2018 The Chromium 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_overrides/build.gni")

if (build_with_chromium) {
  visibility = [
    "//third_party/webrtc/*",
    "//third_party/abseil-cpp/*",
    "//third_party/googletest:gtest",
  ]
} else {
  visibility = [ "*" ]
}

source_set("includes") {
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  public_configs = [ "//third_party/abseil-cpp:absl_include_config" ]
  public = [
    "include/cctz/civil_time.h",
    "include/cctz/civil_time_detail.h",
    "include/cctz/time_zone.h",
  ]
  visibility = []
  visibility += [ "../time:*" ]
}

source_set("civil_time") {
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  public_configs = [ "//third_party/abseil-cpp:absl_include_config" ]
  sources = [
    "src/civil_time_detail.cc",
  ]
  public = [
    "include/cctz/civil_time.h",
    "include/cctz/civil_time_detail.h",
  ]
}

source_set("time_zone") {
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  public_configs = [ "//third_party/abseil-cpp:absl_include_config" ]
  sources = [
    "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",
  ]
  public = [
    "include/cctz/time_zone.h",
    "include/cctz/zone_info_source.h",
  ]
  deps = [
    ":civil_time",
  ]
}
