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

driver_module("passthrough_driver") {
  output_name = "bthci-passthrough"

  sources = [
    "passthrough.c",
  ]

  deps = [
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/driver",
    "//zircon/public/lib/zx",
  ]

  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
}

package("bthci_passthrough") {
  deprecated_system_image = true

  deps = [
    ":passthrough_driver",
  ]

  drivers = [ {
        name = "bthci-passthrough.so"
  } ]
}
