# 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/fidl/fidl.gni")
import("//tools/fidl/measure-tape/measure_tape.gni")

fidl("fuchsia.bluetooth.le") {
  sdk_category = "partner"

  sources = [
    "advertising_data.fidl",
    "central.fidl",
    "connection_options.fidl",
    "overview.fidl",
    "peer.fidl",
    "peripheral.fidl",
    "types_deprecated.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.bluetooth",
    "//sdk/fidl/fuchsia.bluetooth.gatt",
    "//sdk/fidl/fuchsia.bluetooth.gatt2",
    "//zircon/vdso/zx",
  ]
}

measure_tape("hlcpp_measure_tape_for_peer") {
  target_binding = "hlcpp"
  target_types = [ "fuchsia.bluetooth.le/Peer" ]
  fidls = [
    "//sdk/fidl/fuchsia.bluetooth",
    "//sdk/fidl/fuchsia.bluetooth.le",
  ]
}
