# Copyright 2017 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/package.gni")

package("network_time") {
  deprecated_bare_package_url = "//build"

  deps = [
    ":bin",
  ]

  binary = "network_time"

  resources = [
    {
      path = rebase_path("roughtime-servers.json")
      dest = "roughtime-servers.json"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/network_time.cmx")
      dest = "network_time.cmx"
    },
  ]
}

package("network_time_tests") {
  testonly = true

  deps = [
    ":tests",
  ]

  tests = [
    {
      name = "network_time_tests"
    },
  ]
}

source_set("lib") {
  sources = [
    "roughtime_server.cc",
    "roughtime_server.h",
    "time_server_config.cc",
    "time_server_config.h",
    "timezone.cc",
    "timezone.h",
  ]

  deps = [
    ":time_util_lib",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/syslog/cpp",
    "//third_party/boringssl",
    "//third_party/rapidjson",
    "//third_party/roughtime:client_lib",
    "//zircon/public/fidl/fuchsia-hardware-rtc:fuchsia-hardware-rtc_c_client",
    "//zircon/public/lib/fdio",
    "//zircon/public/lib/fit",
  ]
}

executable("bin") {
  output_name = "network_time"

  sources = [
    "main.cc",
  ]

  deps = [
    ":lib",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
  ]
}

static_library("time_util_lib") {
  output_name = "time_util_lib"
  sources = [
    "time_util.cc",
    "time_util.h",
  ]
}

executable("tests") {
  output_name = "network_time_tests"

  testonly = true

  sources = [
    "roughtime_server_test.cc",
    "time_server_config_test.cc",
  ]

  deps = [
    ":lib",
    "//garnet/public/lib/fxl",
    "//third_party/boringssl",
    "//third_party/googletest:gtest_main",
    "//third_party/roughtime:client_lib",
  ]
}
