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

rustc_binary("bin") {
  output_name = "bt-avrcp-controller"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.bluetooth.avrcp:fuchsia.bluetooth.avrcp-rustc",
    "//sdk/fidl/fuchsia.bluetooth.avrcp.test:fuchsia.bluetooth.avrcp.test-rustc",
    "//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:hex",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates/transitional/rustyline",
  ]

  sources = [
    "src/commands.rs",
    "src/main.rs",
  ]
}

fuchsia_shell_package("bt-avrcp-controller") {
  deps = [ ":bin" ]
}

fuchsia_unittest_package("bt-avrcp-controller-unittests") {
  manifest = "meta/bt-avrcp-controller-unittests.cmx"
  deps = [ ":bin_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":bt-avrcp-controller-unittests" ]
}
