# Copyright 2018 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")

source_set("lib") {
  sources = [
    "service.cc",
    "service.h",
  ]

  public_deps = [
    "//garnet/bin/network_time:lib",
    "//sdk/fidl/fuchsia.timezone",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/syslog/cpp",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

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

  sources = [
    "main.cc",
  ]

  deps = [
    ":lib",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-default",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

package("network_time_service") {
  deps = [
    ":bin",
  ]

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

  binary = "network_time_service"

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