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

driver_module("fragment") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [ "fragment.cc" ]
  data_deps = [ ":fragment.proxy" ]
  deps = [
    "//sdk/banjo/ddk.protocol.amlogiccanvas",
    "//sdk/banjo/ddk.protocol.audio",
    "//sdk/banjo/ddk.protocol.buttons",
    "//sdk/banjo/ddk.protocol.camera.sensor",
    "//sdk/banjo/ddk.protocol.clock",
    "//sdk/banjo/ddk.protocol.dsi",
    "//sdk/banjo/ddk.protocol.dsiimpl",
    "//sdk/banjo/ddk.protocol.ethernet.board",
    "//sdk/banjo/ddk.protocol.gdc",
    "//sdk/banjo/ddk.protocol.ge2d",
    "//sdk/banjo/ddk.protocol.goldfish.addressspace",
    "//sdk/banjo/ddk.protocol.goldfish.pipe",
    "//sdk/banjo/ddk.protocol.gpio",
    "//sdk/banjo/ddk.protocol.i2c",
    "//sdk/banjo/ddk.protocol.isp",
    "//sdk/banjo/ddk.protocol.mipicsi",
    "//sdk/banjo/ddk.protocol.platform.device",
    "//sdk/banjo/ddk.protocol.power",
    "//sdk/banjo/ddk.protocol.powerimpl",
    "//sdk/banjo/ddk.protocol.pwm",
    "//sdk/banjo/ddk.protocol.registers",
    "//sdk/banjo/ddk.protocol.rpmb",
    "//sdk/banjo/ddk.protocol.scpi",
    "//sdk/banjo/ddk.protocol.sdio",
    "//sdk/banjo/ddk.protocol.shareddma",
    "//sdk/banjo/ddk.protocol.spi",
    "//sdk/banjo/ddk.protocol.sysmem",
    "//sdk/banjo/ddk.protocol.tee",
    "//sdk/banjo/ddk.protocol.thermal",
    "//sdk/banjo/ddk.protocol.usb.modeswitch",
    "//sdk/banjo/ddk.protocol.usb.phy",
    "//sdk/banjo/ddk.protocol.vreg",
    "//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_llcpp",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_c",
    "//src/devices/lib/driver",
    "//src/lib/ddk",

    # TODO(fxb/38132): Migrate to the new bind rules and delete the below
    "//src/lib/ddk:ddk-deprecated-binding-headers",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/trace:trace-driver",
  ]
}

driver_module("fragment.proxy") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [ "fragment-proxy.cc" ]
  deps = [
    "//sdk/banjo/ddk.protocol.amlogiccanvas",
    "//sdk/banjo/ddk.protocol.audio",
    "//sdk/banjo/ddk.protocol.buttons",
    "//sdk/banjo/ddk.protocol.clock",
    "//sdk/banjo/ddk.protocol.dsi",
    "//sdk/banjo/ddk.protocol.ethernet.board",
    "//sdk/banjo/ddk.protocol.gpio",
    "//sdk/banjo/ddk.protocol.i2c",
    "//sdk/banjo/ddk.protocol.platform.device",
    "//sdk/banjo/ddk.protocol.power",
    "//sdk/banjo/ddk.protocol.pwm",
    "//sdk/banjo/ddk.protocol.registers",
    "//sdk/banjo/ddk.protocol.rpmb",
    "//sdk/banjo/ddk.protocol.spi",
    "//sdk/banjo/ddk.protocol.sysmem",
    "//sdk/banjo/ddk.protocol.tee",
    "//sdk/banjo/ddk.protocol.usb.modeswitch",
    "//sdk/banjo/ddk.protocol.vreg",
    "//src/devices/lib/driver",
    "//src/lib/ddk",

    # TODO(fxb/38132): Migrate to the new bind rules and delete the below
    "//src/lib/ddk:ddk-deprecated-binding-headers",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/trace:trace-driver",
  ]
}
