# Copyright 2021 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.gatt2") {
  # RemoteService fails this check intentionally ("service" refers to a GATT
  # service, not a FIDL service).
  excluded_checks = [ "protocol-name-includes-service" ]

  sdk_category = "partner"
  stable = true
  sdk_area = "Bluetooth"

  sources = [
    "client.fidl",
    "constants.fidl",
    "overview.fidl",
    "server.fidl",
    "types.fidl",
  ]

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

  enable_hlcpp = true
}

measure_tape("hlcpp_measure_tape_for_read_by_type_result") {
  target_binding = "hlcpp"
  target_types = [ "fuchsia.bluetooth.gatt2/ReadByTypeResult" ]
  fidls = [ "//sdk/fidl/fuchsia.bluetooth.gatt2" ]
}
