# Copyright 2021 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/components.gni")
import("//build/rust/rustc_library.gni")

group("tests") {
  testonly = true

  deps = [ ":component_manager_logger_test" ]
}

rustc_library("logger") {
  name = "cm_logger"
  with_unit_tests = true

  deps = [
    "//garnet/lib/rust/io_util",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.logger:fuchsia.logger-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/syslog",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:log",
  ]

  test_deps = [
    "//sdk/fidl/fuchsia.boot:fuchsia.boot-rustc",
    "//src/lib/fuchsia-component",
    "//third_party/rust_crates:rand",
  ]

  sources = [
    "src/fmt.rs",
    "src/klog.rs",
    "src/lib.rs",
    "src/scoped.rs",
  ]
}

fuchsia_unittest_package("component_manager_logger_test") {
  manifest = "meta/component_manager_logger_test.cml"
  deps = [ ":logger_test" ]
}
