# 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 = "power_manager"
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//garnet/public/lib/fidl/rust/fidl",
    "//garnet/public/fidl/fuchsia.power:fuchsia.power-rustc",
    "//garnet/public/rust/fdio",
    "//garnet/public/rust/fuchsia-app",
    "//garnet/public/rust/fuchsia-async",
    "//garnet/public/rust/fuchsia-syslog",
    "//garnet/public/rust/fuchsia-vfs/fuchsia-vfs-watcher",
    "//garnet/public/rust/fuchsia-zircon",
    "//third_party/rust-crates/rustc_deps:failure",
    "//third_party/rust-crates/rustc_deps:futures-preview",
    "//third_party/rust-crates/rustc_deps:libc",
    "//third_party/rust-crates/rustc_deps:parking_lot",
  ]
}

package("power_manager") {
  deprecated_bare_package_url = "//build"

  deps = [
    ":bin",
  ]

  binary = "rust_crates/power_manager"

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

package("power_manager_tests") {
  testonly = true

  deps = [
    ":bin",
  ]

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