# 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/bind/bind.gni")
import("//build/config/fuchsia/rules.gni")
import("//build/driver_package.gni")

bind_rules("bt_hog_bind") {
  rules = "bt_hog.bind"
  output = "bt_hog_bind.h"
  tests = "bind_tests.json"
  deps = [ "//src/devices/bind/fuchsia.bluetooth" ]
}

driver_module("driver") {
  output_name = "bt-hog"

  sources = [
    "boot_descriptors.h",
    "hog.c",
    "hog.h",
  ]

  deps = [
    ":bt_hog_bind",
    "//sdk/banjo/fuchsia.hardware.bt.gattsvc",
    "//sdk/banjo/fuchsia.hardware.hidbus",
    "//src/connectivity/bluetooth/lib/device-protocol-bt-gatt-svc",
    "//src/devices/lib/driver",
    "//src/lib/ddk",
    "//zircon/public/lib/zx",
  ]
}

driver_package("bt-hog") {
  deps = [ ":driver" ]

  drivers = [
    {
      name = "bt-hog.so"
    },
  ]
}

group("tests") {
  testonly = true
  deps = [ ":bt_hog_bind_test" ]
}
