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

driver_module("driver") {
  output_name = "bt-hci-fake"
  testonly = true

  sources = [
    "binding.c",
    "driver.cpp",
    "fake-device.cpp",
    "fake-device.h",
  ]

  deps = [
    "//garnet/drivers/bluetooth/lib/hci",
    "//garnet/drivers/bluetooth/lib/testing:fake_controller",
    "//zircon/public/banjo/ddk-protocol-test",
    "//zircon/public/lib/async-cpp",
    "//zircon/public/lib/async-default",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/driver",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
  ]

  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
}

package("fake") {
  deprecated_system_image = true
  testonly = true

  deps = [
    ":driver",
  ]

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