# 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.

group("platform") {
  deps = [
    ":platform-bus",
    ":platform-bus.proxy",
  ]
}

driver("platform-bus") {
  sources = [
    "cpu-trace.cpp",
    "device-resources.cpp",
    "platform-bus.cpp",
    "platform-composite-device.cpp",
    "platform-device.cpp",
    "platform-protocol-device.cpp",
  ]
  deps = [
    "$zx/system/banjo/ddk.protocol.amlogiccanvas",
    "$zx/system/banjo/ddk.protocol.clock",
    "$zx/system/banjo/ddk.protocol.clockimpl",
    "$zx/system/banjo/ddk.protocol.gpio",
    "$zx/system/banjo/ddk.protocol.gpioimpl",
    "$zx/system/banjo/ddk.protocol.iommu",
    "$zx/system/banjo/ddk.protocol.platform.bus",
    "$zx/system/banjo/ddk.protocol.platform.device",
    "$zx/system/banjo/ddk.protocol.powerimpl",
    "$zx/system/banjo/ddk.protocol.sysmem",
    "$zx/system/fidl/fuchsia-boot:c",
    "$zx/system/fidl/fuchsia-sysinfo:c",
    "$zx/system/ulib/ddk",
    "$zx/system/ulib/ddktl",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/fdio",
    "$zx/system/ulib/sync",
    "$zx/system/ulib/zircon",
    "$zx/system/ulib/zx",
  ]

  # TODO(ZX-2863): This driver violates the allowed shlib deps policy.
  deprecated_inhibit_driver_shlib_allowlist = true
}

driver("platform-bus.proxy") {
  sources = [
    "platform-proxy.cpp",
  ]
  deps = [
    "$zx/system/banjo/ddk.protocol.amlogiccanvas",
    "$zx/system/banjo/ddk.protocol.clock",
    "$zx/system/banjo/ddk.protocol.gpio",
    "$zx/system/banjo/ddk.protocol.gpioimpl",
    "$zx/system/banjo/ddk.protocol.platform.bus",
    "$zx/system/banjo/ddk.protocol.platform.device",
    "$zx/system/banjo/ddk.protocol.sysmem",
    "$zx/system/ulib/ddk",
    "$zx/system/ulib/ddktl",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/sync",
    "$zx/system/ulib/zircon",
    "$zx/system/ulib/zx",
  ]
}
