# Copyright 2019 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/zircon/zx_library.gni")

zx_library("usb-virtual-bus-launcher") {
  sdk = "static"
  sdk_headers = [
    "lib/usb-virtual-bus-launcher/usb-virtual-bus-launcher.h",
    "lib/usb-virtual-bus-launcher-helper/usb-virtual-bus-launcher-helper.h",
  ]
  testonly = true
  sources = [
    "usb-virtual-bus-launcher-helper.cc",
    "usb-virtual-bus-launcher.cc",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.hardware.usb.peripheral:fuchsia.hardware.usb.peripheral_llcpp",
    "//sdk/fidl/fuchsia.hardware.usb.virtual.bus:fuchsia.hardware.usb.virtual.bus_llcpp",
    "//src/devices/testing/driver-integration-test-shim",
    "//zircon/system/ulib/ddk-platform-defs",
    "//zircon/system/ulib/zxtest",
  ]
  deps = [
    "//sdk/fidl/fuchsia.hardware.usb.peripheral:fuchsia.hardware.usb.peripheral_llcpp",
    "//sdk/fidl/fuchsia.hardware.usb.virtual.bus:fuchsia.hardware.usb.virtual.bus_llcpp",
    "//sdk/lib/fdio",
    "//src/devices/testing/driver-integration-test-shim",
    "//src/lib/ddk",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/fidl-async:fidl-async-cpp",
    "//zircon/system/ulib/usb-peripheral-utils",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]

  # TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated.
  # Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>).
  # See linked bug for details.
  configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ]

  # STOP: Do not add any new entries to this allow list. Use //sdk/lib/driver_test_realm instead.
  visibility = [
    "//src/connectivity/ethernet/drivers/asix-88179/*",
    "//src/connectivity/ethernet/drivers/usb-cdc-ecm/*",
    "//src/devices/block/drivers/usb-mass-storage/*",
    "//src/devices/serial/drivers/ftdi/test/*",
    "//src/devices/serial/drivers/usb-cdc-acm/*",
    "//src/devices/usb/drivers/usb-virtual-bus/*",
    "//src/ui/input/drivers/usb-hid/*",
  ]
}
