# 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/rust/rustc_binary.gni")
import("//build/package.gni")

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

  deps = [
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-syslog-listener",
    "//garnet/public/rust/fuchsia-zircon",
    "//third_party/rust-crates/rustc_deps:chrono",
    "//third_party/rust-crates/rustc_deps:failure",
    "//third_party/rust-crates/rustc_deps:tempfile",
    "//zircon/public/fidl/fuchsia-logger:fuchsia-logger-rustc",
  ]
}

package("log_listener") {
  deprecated_system_image = true
  deps = [
    ":bin",
  ]

  binaries = [
    {
      name = "rust_crates/log_listener"
      dest = "log_listener"
    },
  ]
}

package("log_listener_tests") {
  testonly = true

  deps = [
    ":bin",
  ]

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