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

rustc_library("fuchsia-bluetooth") {
  name = "fuchsia_bluetooth"
  version = "0.1.0"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//garnet/lib/bluetooth/fidl:fuchsia.bluetooth.host-rustc",
    "//garnet/public/fidl/fuchsia.bluetooth:fuchsia.bluetooth-rustc",
    "//garnet/public/fidl/fuchsia.bluetooth.control:fuchsia.bluetooth.control-rustc",
    "//garnet/public/rust/fdio",
    "//garnet/public/rust/fuchsia-zircon",
    "//third_party/rust-crates/rustc_deps:failure",
    "//third_party/rust-crates/rustc_deps:lazy_static",
    "//third_party/rust-crates/rustc_deps:rand",
    "//zircon/public/fidl/fuchsia-device-test:fuchsia-device-test-rustc",
  ]
}

package("tests") {
  testonly = true

  package_name = "bt-crate-tests"

  deps = [
    ":fuchsia-bluetooth"
  ]

  tests = [
    {
      name = "fuchsia_bluetooth_lib_test_rustc"
      dest = "bt-crate-unittests"
    }
  ]
}
