# Copyright 2017 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")

fuchsia_shell_package("bt-shell-examples") {
  deps = [
    "bt-beacon-reader",
    "bt-le-battery-service",
    "bt-le-heart-rate-peripheral",
  ]
}

group("examples") {
  deps = [
    ":bt-shell-examples",
    "bt-device-id-client",
    "bt-fastpair-client",
    "bt-le-battery-monitor",
    "bt-opp-client",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "bt-device-id-client:tests",
    "bt-fastpair-client:tests",
    "bt-le-battery-monitor:tests",
    "bt-le-battery-service:tests",
  ]
}
