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

rustc_binary("bin") {
  edition = "2021"
  output_name = "bt-le-peripheral"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.bluetooth:fuchsia.bluetooth_rust",
    "//sdk/fidl/fuchsia.bluetooth.le:fuchsia.bluetooth.le_rust",
    "//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:base64",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:structopt",
  ]

  sources = [ "src/main.rs" ]

  configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}

fuchsia_package("bt-le-peripheral") {
  deps = [ ":bin" ]
}

fuchsia_unittest_package("bt-le-peripheral-unittests") {
  deps = [ ":bin_test" ]
}

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