# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/abseil-cpp/absl.gni")

absl_source_set("time") {
  sources = [
    "civil_time.cc",
    "clock.cc",
    "duration.cc",
    "format.cc",
    "internal/get_current_time_chrono.inc",
    "internal/get_current_time_posix.inc",
    "time.cc",
  ]
  public = [
    "civil_time.h",
    "clock.h",
    "time.h",
  ]

  public_deps = [
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/strings:string_view",
    "//third_party/abseil-cpp/absl/time/internal/cctz:civil_time",
    "//third_party/abseil-cpp/absl/time/internal/cctz:time_zone",
  ]
  deps = [
    "//third_party/abseil-cpp/absl/base",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//third_party/abseil-cpp/absl/numeric:int128",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

absl_source_set("clock_interface") {
  sources = [ "clock_interface.cc" ]
  public = [ "clock_interface.h" ]

  public_deps = [
    ":time",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:nullability",
    "//third_party/abseil-cpp/absl/synchronization",
  ]
  deps = [
    "//third_party/abseil-cpp/absl/base:no_destructor",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
  ]
}

absl_source_set("simulated_clock") {
  testonly = true
  sources = [ "simulated_clock.cc" ]
  public = [ "simulated_clock.h" ]
  deps = [
    ":clock_interface",
    ":time",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:nullability",
    "//third_party/abseil-cpp/absl/synchronization",
  ]
}

absl_source_set("test_util") {
  testonly = true
  sources = [ "internal/test_util.cc" ]
  public = [ "internal/test_util.h" ]
  deps = [
    ":time",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
  ]
  visibility = [ ":*" ]
}

absl_test("time_test") {
  sources = [
    "civil_time_test.cc",
    "clock_test.cc",
    "duration_test.cc",
    "format_test.cc",
    "time_test.cc",
    "time_zone_test.cc",
  ]
  deps = [
    ":test_util",
    ":time",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/hash:hash_testing",
    "//third_party/abseil-cpp/absl/numeric:int128",
    "//third_party/abseil-cpp/absl/random",
    "//third_party/abseil-cpp/absl/strings:str_format",
    "//third_party/abseil-cpp/absl/time/internal/cctz:time_zone",
  ]
}

absl_test("clock_interface_test") {
  sources = [ "clock_interface_test.cc" ]
  deps = [
    ":clock_interface",
    ":time",
    "//third_party/abseil-cpp/absl/functional:bind_front",
    "//third_party/abseil-cpp/absl/synchronization",
  ]
}

absl_test("simulated_clock_test") {
  sources = [ "simulated_clock_test.cc" ]
  deps = [
    ":clock_interface",
    ":simulated_clock",
    ":time",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//third_party/abseil-cpp/absl/functional:bind_front",
    "//third_party/abseil-cpp/absl/random",
    "//third_party/abseil-cpp/absl/synchronization",
  ]
}
