blob: a324585de73f121d8ee92aaf3c2dd08bfbb89f78 [file] [log] [blame]
# Copyright 2021 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/fidl/toolchain.gni")
import("//build/python/python_host_test.gni")
group("tests") {
testonly = true
deps = [ ":analyze_deps_test($host_toolchain)" ]
}
python_host_test("analyze_deps_test") {
main_source = "analyze_deps_test.py"
sources = [ "analyze_deps.py" ]
}
_all_libraries_deps = [
"ddk.hw.physiter",
"ddk.hw.wlan.ieee80211",
"ddk.hw.wlan.wlaninfo",
"fuchsia.hardware.amlogiccanvas",
"fuchsia.hardware.audio",
"fuchsia.hardware.audiotypes",
"fuchsia.hardware.badblock",
"fuchsia.hardware.block",
"fuchsia.hardware.block.partition",
"fuchsia.hardware.block.volume",
"fuchsia.hardware.bt.gattsvc",
"fuchsia.hardware.bt.hci",
"fuchsia.hardware.bt.vendor",
"fuchsia.hardware.buttons",
"fuchsia.hardware.camera",
"fuchsia.hardware.camera.sensor",
"fuchsia.hardware.camerahwaccel",
"fuchsia.hardware.clockimpl",
"fuchsia.hardware.display.capture",
"fuchsia.hardware.display.clamprgb",
"fuchsia.hardware.display.controller",
"fuchsia.hardware.dotmatrixdisplay",
"fuchsia.hardware.dsi",
"fuchsia.hardware.dsiimpl",
"fuchsia.hardware.ethernet",
"fuchsia.hardware.ethernet.board",
"fuchsia.hardware.ethernet.mac",
"fuchsia.hardware.gdc",
"fuchsia.hardware.ge2d",
"fuchsia.hardware.goldfish.addressspace",
"fuchsia.hardware.goldfish.control",
"fuchsia.hardware.goldfish.pipe",
"fuchsia.hardware.goldfish.sync",
"fuchsia.hardware.gpio",
"fuchsia.hardware.gpu.mali",
"fuchsia.hardware.hidbus",
"fuchsia.hardware.hiddevice",
"fuchsia.hardware.i2c",
"fuchsia.hardware.i2cimpl",
"fuchsia.hardware.intelgpucore",
"fuchsia.hardware.intelhda.codec",
"fuchsia.hardware.iommu",
"fuchsia.hardware.isp",
"fuchsia.hardware.mailbox",
"fuchsia.hardware.mipicsi",
"fuchsia.hardware.nand",
"fuchsia.hardware.nandinfo",
"fuchsia.hardware.network.device",
"fuchsia.hardware.network.mac",
"fuchsia.hardware.pci",
"fuchsia.hardware.pciroot",
"fuchsia.hardware.platform.bus",
"fuchsia.hardware.platform.device",
"fuchsia.hardware.power",
"fuchsia.hardware.powerimpl",
"fuchsia.hardware.pwm",
"fuchsia.hardware.rawnand",
"fuchsia.hardware.registers",
"fuchsia.hardware.rpmb",
"fuchsia.hardware.scpi",
"fuchsia.hardware.sdhci",
"fuchsia.hardware.sdio",
"fuchsia.hardware.sdmmc",
"fuchsia.hardware.serial",
"fuchsia.hardware.serialimpl",
"fuchsia.hardware.serialimpl.async",
"fuchsia.hardware.shareddma",
"fuchsia.hardware.spi",
"fuchsia.hardware.spiimpl",
"fuchsia.hardware.syscalls.pci",
"fuchsia.hardware.sysmem",
"fuchsia.hardware.tee",
"fuchsia.hardware.test",
"fuchsia.hardware.thermal",
"fuchsia.hardware.usb",
"fuchsia.hardware.usb.bus",
"fuchsia.hardware.usb.composite",
"fuchsia.hardware.usb.dci",
"fuchsia.hardware.usb.function",
"fuchsia.hardware.usb.hci",
"fuchsia.hardware.usb.hub",
"fuchsia.hardware.usb.hubdescriptor",
"fuchsia.hardware.usb.modeswitch",
"fuchsia.hardware.usb.phy",
"fuchsia.hardware.usb.request",
"fuchsia.hardware.vreg",
"fuchsia.hardware.wlan.info",
"fuchsia.hardware.wlan.mac",
"fuchsia.hardware.wlanif",
"fuchsia.hardware.wlanphy",
"fuchsia.hardware.wlanphyimpl",
"fuchsia.sysmem",
"zircon.hw.pci",
]
# This target only exists to support the `analyze_deps.py` script. It is
# currently not connected to the build graph.
group("banjo") {
deps = _all_libraries_deps
}
# Verify that the libraries are valid FIDL libraries.
_fidl_translated_deps = _all_libraries_deps
# Remove libraries that have not been vetted yet.
_fidl_translated_deps -= [
"ddk.hw.wlan.wlaninfo", # Identifiers starting with a digit.
"fuchsia.hardware.audiotypes", # Identifiers starting with a digit.
"fuchsia.hardware.display.controller", # Blocked by
# fuchsia.hardware.audiotypes.
"fuchsia.hardware.gdc", # Blocked by fuchsia.sysmem.
"fuchsia.hardware.ge2d", # Blocked by fuchsia.sysmem.
"fuchsia.hardware.hidbus", # Multiple enum variants with the same value.
"fuchsia.hardware.isp", # Blocked by fuchsia.sysmem.
"fuchsia.hardware.pciroot", # Blocked by zircon.hw.pci.
"fuchsia.hardware.serialimpl", # Blocked by fuchsia.hardware.serial.
"fuchsia.hardware.serialimpl.async", # Blocked by fuchsia.hardware.serial.
"fuchsia.hardware.usb", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.bus", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.composite", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.dci", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.function", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.hci", # Blocked by zircon.hw.usb.
"fuchsia.hardware.usb.request", # Blocked by zircon.hw.usb.
"fuchsia.hardware.wlan.info", # Variable names starting with `_`.
"fuchsia.hardware.wlan.mac", # Blocked by fuchsia.hardware.wlan.info.
"fuchsia.hardware.wlanif", # Blocked by fuchsia.hardware.wlan.info.
"fuchsia.hardware.wlanphyimpl", # Blocked by ddk.hw.wlan.wlaninfo.
"fuchsia.sysmem", # A struct and a constant share the same canonical name.
"zircon.hw.pci", # Dummy library.
]
# Verify that the Rust bindings generated by fidlgen_banjo for these libraries are
# identical to the ones generated by banjo.
_rust_translated_deps = [
"ddk.hw.wlan.ieee80211",
# "ddk.hw.wlan.wlaninfo", # Not FIDL-compliant yet.
# "fuchsia.hardware.wlan.info", # Not FIDL-compliant yet.
# "fuchsia.hardware.wlan.mac", # Not FIDL-compliant yet.
]
# Verify that the C++ mock bindings generated by fidlgen_banjo for these libraries are
# identical to the ones generated by banjo.
_cpp_mock_translated_deps = [
"fuchsia.hardware.camera.sensor",
"fuchsia.hardware.mipicsi",
"fuchsia.hardware.pci",
"fuchsia.hardware.power",
"fuchsia.hardware.pwm",
"fuchsia.hardware.registers",
"fuchsia.hardware.scpi",
"fuchsia.hardware.sdhci",
"fuchsia.hardware.sdio",
"fuchsia.hardware.shareddma",
"fuchsia.hardware.vreg",
]
group("translated") {
testonly = true
deps = []
foreach(library, _fidl_translated_deps) {
deps += [
"$library:${library}.fidl($fidl_toolchain)",
"$library:${library}_banjo_c",
"$library:${library}_banjo_cpp_2",
]
}
foreach(library, _rust_translated_deps) {
deps += [ "$library:${library}_banjo_rust" ]
}
foreach(library, _cpp_mock_translated_deps) {
deps += [ "$library:${library}_banjo_cpp_mock_2" ]
}
}