# 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.deprecatedtimezone",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//sdk/lib/syslog/cpp:backend_legacy",
    "//src/lib/fxl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

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

  sources = [ "main.cc" ]

  deps = [
    ":lib",
    "//sdk/lib/sys/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//zircon/system/ulib/async-default",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

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

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

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