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

rustc_library("bt-avctp") {
  name = "bt_avctp"
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
    "//src/connectivity/bluetooth/lib/packet-encoding",
    "//src/lib/fuchsia-async",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:slab",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [
    "src/avc/mod.rs",
    "src/avc/tests.rs",
    "src/avc/types.rs",
    "src/avctp/mod.rs",
    "src/avctp/tests.rs",
    "src/avctp/types.rs",
    "src/lib.rs",
  ]
}

fuchsia_unittest_package("bt-avctp-tests") {
  executable_path = "bin/bt_avctp_lib_test"
  deps = [ ":bt-avctp_test" ]
}

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