# Copyright 2019 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/config.gni")
import("//build/rust/rustc_binary.gni")
import("//src/sys/build/components.gni")

rustc_binary("bin") {
  name = "httpsdate_time_source"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.cobalt:fuchsia.cobalt-rustc",
    "//sdk/fidl/fuchsia.time.external:fuchsia.time.external-rustc",
    "//src/lib/cobalt/rust:fuchsia-cobalt",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/time/lib/httpdate-hyper",
    "//src/sys/time/lib/push-source",
    "//src/sys/time/lib/time-util",
    "//src/sys/time/lib/time_metrics_registry",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:hyper",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:rand",
  ]

  sources = [
    "src/bound.rs",
    "src/constants.rs",
    "src/datatypes.rs",
    "src/diagnostics/cobalt.rs",
    "src/diagnostics/composite.rs",
    "src/diagnostics/fake.rs",
    "src/diagnostics/inspect.rs",
    "src/diagnostics/mod.rs",
    "src/httpsdate.rs",
    "src/main.rs",
    "src/sampler.rs",
  ]

  test_deps = [
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:matches",
  ]
}

fuchsia_component("service") {
  component_name = "httpsdate_time_source"
  manifest = "meta/service.cmx"
  deps = [ ":bin" ]
}

fuchsia_unittest_package("httpsdate-time-source-tests") {
  manifest = "meta/unittests.cmx"
  deps = [ ":bin_test" ]
}

fuchsia_package("httpsdate-time-source") {
  deps = [ ":service" ]
}

group("tests") {
  testonly = true
  deps = [ ":httpsdate-time-source-tests" ]
}
