# 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")
import("//build/unification/images/migrated_manifest.gni")

driver_module("nelson") {
  defines = [ "_ALL_SOURCE" ]
  configs += [ "//build/config/fuchsia:enable_zircon_asserts" ]
  configs -= [ "//build/config/fuchsia:no_cpp_standard_library" ]
  configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
  if (is_fuchsia) {
    configs += [ "//build/unification/config:zircon-migrated" ]
  }
  sources = [
    "nelson-audio.cc",
    "nelson-backlight.cc",
    "nelson-bluetooth.cc",
    "nelson-buttons.cc",
    "nelson-canvas.cc",
    "nelson-clk.cc",
    "nelson-cpu.cc",
    "nelson-display.cc",
    "nelson-emmc.cc",
    "nelson-gpio.cc",
    "nelson-i2c.cc",
    "nelson-light.cc",
    "nelson-mali.cc",
    "nelson-pwm.cc",
    "nelson-sdio.cc",
    "nelson-securemem.cc",
    "nelson-spi.cc",
    "nelson-sysmem.cc",
    "nelson-tee.cc",
    "nelson-thermal.cc",
    "nelson-touch.cc",
    "nelson-usb.cc",
    "nelson-video.cc",
    "nelson.cc",
  ]
  deps = [
    "//sdk/banjo/ddk.protocol.clockimpl",
    "//sdk/banjo/ddk.protocol.gpio",
    "//sdk/banjo/ddk.protocol.gpioimpl",
    "//sdk/banjo/ddk.protocol.iommu",
    "//sdk/banjo/ddk.protocol.platform.bus",
    "//sdk/banjo/ddk.protocol.platform.device",
    "//sdk/banjo/ddk.protocol.scpi",
    "//sdk/banjo/ddk.protocol.sdmmc",
    "//sdk/banjo/ddk.protocol.serial",
    "//sdk/fidl/fuchsia.hardware.light:fuchsia.hardware.light_c",
    "//sdk/fidl/fuchsia.hardware.serial:fuchsia.hardware.serial_c",
    "//sdk/fidl/fuchsia.hardware.thermal:fuchsia.hardware.thermal_c",
    "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_c",
    "//src/devices/lib/amlogic",
    "//src/devices/lib/broadcom",
    "//src/devices/lib/driver",
    "//src/devices/lib/focaltech",
    "//src/devices/usb/lib/usb",
    "//src/graphics/display/lib/device-protocol-display",
    "//zircon/public/lib/ddk",
    "//zircon/public/lib/ddktl",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/hwreg",
    "//zircon/public/lib/mmio",
    "//zircon/public/lib/sync",
    "//zircon/public/lib/zircon-internal",
    "//zircon/public/lib/zx",
  ]
}

migrated_manifest("nelson-manifest") {
  deps = [ ":nelson" ]
}
