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

bind_rules("fragment-bind") {
  output = "fragment-bind.h"
  rules = "fragment.bind"
}

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

bind_rules("fragment-proxy-bind") {
  output = "fragment-proxy-bind.h"
  rules = "fragment-proxy.bind"
}

driver_module("fragment.proxy") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  sources = [ "fragment-proxy.cc" ]
  deps = [
    ":fragment-proxy-bind",
    "//sdk/banjo/fuchsia.hardware.amlogiccanvas",
    "//sdk/banjo/fuchsia.hardware.audio",
    "//sdk/banjo/fuchsia.hardware.buttons",
    "//sdk/banjo/fuchsia.hardware.clock:fuchsia.hardware.clock_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.dsi",
    "//sdk/banjo/fuchsia.hardware.ethernet.board",
    "//sdk/banjo/fuchsia.hardware.goldfish.addressspace",
    "//sdk/banjo/fuchsia.hardware.goldfish.pipe",
    "//sdk/banjo/fuchsia.hardware.goldfish.sync",
    "//sdk/banjo/fuchsia.hardware.gpio:fuchsia.hardware.gpio_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.hdmi:fuchsia.hardware.hdmi_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.i2c",
    "//sdk/banjo/fuchsia.hardware.platform.device:fuchsia.hardware.platform.device_banjo_cpp",
    "//sdk/banjo/fuchsia.hardware.power",
    "//sdk/banjo/fuchsia.hardware.pwm",
    "//sdk/banjo/fuchsia.hardware.registers",
    "//sdk/banjo/fuchsia.hardware.rpmb",
    "//sdk/banjo/fuchsia.hardware.spi",
    "//sdk/banjo/fuchsia.hardware.sysmem",
    "//sdk/banjo/fuchsia.hardware.tee",
    "//sdk/banjo/fuchsia.hardware.usb.modeswitch",
    "//sdk/banjo/fuchsia.hardware.vreg",
    "//src/devices/lib/driver",
    "//src/lib/ddk",
    "//src/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zx",
    "//zircon/system/ulib/trace:trace-driver",
  ]
}
