# 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",
    "//garnet/public/lib/syslog/cpp",
    "//sdk/fidl/fuchsia.deprecatedtimezone",
    "//sdk/fidl/fuchsia.timezone",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

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

  sources = [
    "main.cc",
  ]

  deps = [
    ":lib",
    "//garnet/public/lib/fsl",
    "//sdk/lib/sys/cpp",
    "//src/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"
    },
  ]
}
