# 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.
#
# WARNING: This file was machine-generated from previous json files and
# will eventually be deleted.

group("acpidump") {
  testonly = true
  if (target_cpu == "x64") {
    public_deps = [ "//zircon/system/uapp/acpidump" ]
  }
}

group("broadcom") {
  public_deps = [
    "//src/connectivity/wlan/drivers/third_party/broadcom/brcmfmac",
    "//src/connectivity/wlan/drivers/wlanif",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("bluetooth_hid") {
  testonly = true
  public_deps = [ "//src/connectivity/bluetooth/profiles/bt-hog" ]
}

group("tracing") {
  testonly = true
  public_deps = [
    "//garnet/bin/cpuperf_provider",
    "//garnet/bin/cpuperf_provider:report_generators",
    "//garnet/bin/ktrace_provider",
    "//garnet/bin/trace",
    "//garnet/bin/trace2json",
    "//garnet/bin/trace_manager",
    "//garnet/bin/traceutil",
    "//src/developer/memory/monitor",
  ]
}

group("bluetooth_intel") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:bluetooth_hci",
    "//src/connectivity/bluetooth/hci/intel",
  ]
}

# WARNING: Known to topaz.
group("scenic") {
  public_deps = [
    "//garnet/packages/prod:sysmem_connector",
    "//garnet/packages/prod:vulkan",
    "//src/ui/bin/activity",
    "//src/ui/bin/ime:ime_service",
    "//src/ui/bin/root_presenter",
    "//src/ui/bin/root_presenter:configs",
    "//src/ui/scenic",
  ]
}

# WARNING: Known to topaz.
group("scenic_no_ime") {
  public_deps = [
    "//garnet/packages/prod:sysmem_connector",
    "//garnet/packages/prod:vulkan",
    "//src/ui/bin/activity",
    "//src/ui/bin/root_presenter",
    "//src/ui/bin/root_presenter:configs",
    "//src/ui/scenic",
  ]
}

group("cpuperf") {
  testonly = true
  public_deps = [
    "//garnet/bin/cpuperf",
    "//garnet/bin/cpuperf/print:host_cpuperf_print",
  ]
}

# WARNING: Known to topaz.
group("drivers") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:bluetooth_drivers",
    "//garnet/packages/prod:openthread",
    "//garnet/packages/prod:vulkan",
    "//garnet/packages/prod:wlan_drivers",
    "//src/camera/drivers",
    "//src/connectivity/ppp:drivers",
    "//src/connectivity/telephony:drivers",
    "//src/graphics/drivers",
    "//src/media/drivers",
  ]
  if (target_cpu == "x64") {
    public_deps += [
      "//garnet/packages/prod:goldfish-vulkan",
      "//garnet/packages/prod:magma-intel-gen",
    ]
  }
}

group("openthread") {
  testonly = true
  public_deps = [ "//src/connectivity/openthread/drivers/ot-radio:openthread" ]
}

group("all") {
  testonly = true
  public_deps = [
    ":drivers",
    "//garnet/packages/prod:acpidump",
    "//garnet/packages/prod:atheros",
    "//garnet/packages/prod:bluetooth_a2dp",
    "//garnet/packages/prod:bluetooth_all",
    "//garnet/packages/prod:bluetooth_atheros",
    "//garnet/packages/prod:bluetooth_avrcp",
    "//garnet/packages/prod:bluetooth_core",
    "//garnet/packages/prod:bluetooth_hci",
    "//garnet/packages/prod:bluetooth_hid",
    "//garnet/packages/prod:bluetooth_intel",
    "//garnet/packages/prod:bluetooth_profiles",
    "//garnet/packages/prod:broadcom",
    "//garnet/packages/prod:chrealm",
    "//garnet/packages/prod:cmdutils",
    "//garnet/packages/prod:cobalt_client",
    "//garnet/packages/prod:cpuperf",
    "//garnet/packages/prod:debug_agent",
    "//garnet/packages/prod:drivers",
    "//garnet/packages/prod:far",
    "//garnet/packages/prod:guest_runner",
    "//garnet/packages/prod:insntrace",
    "//garnet/packages/prod:iquery",
    "//garnet/packages/prod:magma-arm-mali",
    "//garnet/packages/prod:magma-img-rgx-mt8167",
    "//garnet/packages/prod:magma-qcom-adreno",
    "//garnet/packages/prod:memory_monitor",
    "//garnet/packages/prod:network-speed-test",
    "//garnet/packages/prod:openthread",
    "//garnet/packages/prod:ralink",
    "//garnet/packages/prod:realtek",
    "//garnet/packages/prod:run",
    "//garnet/packages/prod:sbase",
    "//garnet/packages/prod:scenic",
    "//garnet/packages/prod:setui_client",
    "//garnet/packages/prod:sysmem_connector",
    "//garnet/packages/prod:tee_manager",
    "//garnet/packages/prod:telephony",
    "//garnet/packages/prod:terminal",
    "//garnet/packages/prod:test_runner",
    "//garnet/packages/prod:tiles",
    "//garnet/packages/prod:tracing",
    "//garnet/packages/prod:vboot_reference",
    "//garnet/packages/prod:vim",
    "//garnet/packages/prod:wlan_drivers",
    "//garnet/packages/prod:wlanif",
    "//garnet/packages/prod:wlanphy",
    "//src/connectivity/network/dhcp:dhcpd",
    "//src/connectivity/network/mdns/bundles:services",
    "//src/connectivity/network/mdns/bundles:utils",
    "//src/connectivity/network/netstack:tools",
    "//src/connectivity/telephony:drivers",
    "//src/connectivity/wlan:packages",
    "//src/connectivity/wlan:tools",
    "//src/developer/memory/mem",
    "//src/fonts",
    "//src/power:battery",
    "//src/ui/a11y:a11y",
  ]
}

group("atheros") {
  public_deps = [
    "//src/connectivity/wlan/drivers/third_party/atheros/ath10k:ath10k",
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("wifi_intel") {
  public_deps = [
    "//src/connectivity/wlan/drivers/third_party/intel/iwlwifi:iwlwifi",
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("realtek") {
  public_deps = [
    "//src/connectivity/wlan/drivers/realtek/rtl88xx",
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("memory_monitor") {
  public_deps = [
    "//garnet/packages/config:services",
    "//src/developer/memory/monitor",
  ]
}

group("insntrace") {
  testonly = true
  public_deps = [
    "//garnet/bin/insntrace",
    "//garnet/bin/insntrace:host_insntrace_print",
  ]
}

group("guest_runner") {
  testonly = true
  public_deps = [
    "//garnet/packages/config:network",
    "//src/sys/pkg/bin/amber",
    "//src/virtualization/bin/guest:guest",
    "//src/virtualization/bin/guest_manager:guest_manager",
    "//src/virtualization/bin/guest_runner:guest_runner",
    "//src/virtualization/bin/vmm",
    "//src/virtualization/bin/vmm/device:virtio_balloon",
    "//src/virtualization/bin/vmm/device:virtio_block",
    "//src/virtualization/bin/vmm/device:virtio_console",
    "//src/virtualization/bin/vmm/device:virtio_gpu",
    "//src/virtualization/bin/vmm/device:virtio_input",
    "//src/virtualization/bin/vmm/device:virtio_magma",
    "//src/virtualization/bin/vmm/device:virtio_net",
    "//src/virtualization/bin/vmm/device:virtio_rng",
    "//src/virtualization/bin/vmm/device:virtio_wl",
  ]
}

group("usb_video") {
  testonly = true
  public_deps = [ "//src/camera/drivers/usb_video" ]
}

group("bluetooth_atheros") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:bluetooth_hci",
    "//src/connectivity/bluetooth/hci/atheros",
  ]
}

group("bluetooth_hci") {
  testonly = true
  public_deps = [ "//src/connectivity/bluetooth/hci/passthrough" ]
}

group("cmdutils") {
  testonly = true
  public_deps = [
    "//examples/cowsay",
    "//garnet/bin/time",
    "//garnet/bin/uname",
    "//garnet/packages/prod:sbase",
    "//garnet/packages/prod:vim",
  ]
}

group("bluetooth_drivers") {
  testonly = true
  public_deps = [
    "//src/connectivity/bluetooth/core/bt-host",
    "//src/connectivity/bluetooth/hci/atheros",
    "//src/connectivity/bluetooth/hci/emulator",
    "//src/connectivity/bluetooth/hci/intel",
    "//src/connectivity/bluetooth/hci/passthrough",
    "//src/connectivity/bluetooth/profiles/bt-hog",
  ]
}

group("vboot_reference") {
  public_deps = [
    "//garnet/tools/vboot_reference:cgpt_host",
    "//garnet/tools/vboot_reference:futility_host",
  ]
}

group("cobalt_client") {
  testonly = true
  public_deps = [
    "//src/cobalt/bin/app:cobalt",
    "//src/cobalt/bin/system-metrics:cobalt_system_metrics",
  ]
}

group("bluetooth_profiles") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:bluetooth_a2dp",
    "//garnet/packages/prod:bluetooth_avrcp",
    "//garnet/packages/prod:bluetooth_hid",
  ]
}

group("network_time") {
  testonly = true
  public_deps = [ "//garnet/bin/network_time_service" ]
}

group("vim") {
  testonly = true
  public_deps = [ "//third_party/vim" ]
}

group("telephony") {
  testonly = true
  public_deps = [
    "//src/connectivity/telephony/drivers/qmi-fake-transport",
    "//src/connectivity/telephony/drivers/qmi-usb-transport",
    "//src/connectivity/telephony/ril-at",
    "//src/connectivity/telephony/ril-at:ril-at-tests",
    "//src/connectivity/telephony/ril-qmi",
    "//src/connectivity/telephony/ril-qmi:ril-qmi-tests",
    "//src/connectivity/telephony/telephony",
    "//src/connectivity/telephony/tools/ril-ctl",
  ]
}

group("tiles") {
  testonly = true
  public_deps = [ "//src/ui/tools/tiles" ]
}

group("vulkan") {
  public_deps = [
    "//garnet/packages/prod:sysmem_connector",
    "//src/graphics/bin/vulkan_loader",
  ]
}

group("run") {
  testonly = true
  public_deps = [ "//garnet/bin/run" ]
}

group("chrealm") {
  testonly = true
  public_deps = [ "//garnet/bin/chrealm" ]
}

group("bluetooth_avrcp") {
  testonly = true
  public_deps = [ "//src/connectivity/bluetooth/profiles/bt-avrcp" ]
}

group("bluetooth_a2dp") {
  testonly = true
  public_deps = [ "//src/connectivity/bluetooth/profiles/bt-a2dp-sink" ]
}

group("network-speed-test") {
  testonly = true
  public_deps = [ "//src/connectivity/network/tools/network-speed-test" ]
}

group("sbase") {
  testonly = true
  public_deps = [
    "//third_party/sbase:basename",
    "//third_party/sbase:cal",
    "//third_party/sbase:cat",
    "//third_party/sbase:cksum",
    "//third_party/sbase:cmp",
    "//third_party/sbase:cols",
    "//third_party/sbase:comm",
    "//third_party/sbase:cp",
    "//third_party/sbase:cut",
    "//third_party/sbase:date",
    "//third_party/sbase:dirname",
    "//third_party/sbase:du",
    "//third_party/sbase:echo",
    "//third_party/sbase:ed",
    "//third_party/sbase:env",
    "//third_party/sbase:expand",
    "//third_party/sbase:expr",
    "//third_party/sbase:false",
    "//third_party/sbase:find",
    "//third_party/sbase:fold",
    "//third_party/sbase:grep",
    "//third_party/sbase:head",
    "//third_party/sbase:hostname",
    "//third_party/sbase:join",
    "//third_party/sbase:link",
    "//third_party/sbase:ls",
    "//third_party/sbase:md5sum",
    "//third_party/sbase:mkdir",
    "//third_party/sbase:mktemp",
    "//third_party/sbase:mv",
    "//third_party/sbase:nl",
    "//third_party/sbase:od",
    "//third_party/sbase:paste",
    "//third_party/sbase:pathchk",
    "//third_party/sbase:printenv",
    "//third_party/sbase:printf",
    "//third_party/sbase:pwd",
    "//third_party/sbase:readlink",
    "//third_party/sbase:rev",
    "//third_party/sbase:rm",
    "//third_party/sbase:rmdir",
    "//third_party/sbase:sed",
    "//third_party/sbase:seq",
    "//third_party/sbase:sha1sum",
    "//third_party/sbase:sha224sum",
    "//third_party/sbase:sha256sum",
    "//third_party/sbase:sha384sum",
    "//third_party/sbase:sha512-224sum",
    "//third_party/sbase:sha512-256sum",
    "//third_party/sbase:sha512sum",
    "//third_party/sbase:sleep",
    "//third_party/sbase:sort",
    "//third_party/sbase:split",
    "//third_party/sbase:sponge",
    "//third_party/sbase:strings",
    "//third_party/sbase:sync",
    "//third_party/sbase:tail",
    "//third_party/sbase:tar",
    "//third_party/sbase:tee",
    "//third_party/sbase:test",
    "//third_party/sbase:tftp",
    "//third_party/sbase:touch",
    "//third_party/sbase:tr",
    "//third_party/sbase:true",
    "//third_party/sbase:tsort",
    "//third_party/sbase:tty",
    "//third_party/sbase:unexpand",
    "//third_party/sbase:uniq",
    "//third_party/sbase:unlink",
    "//third_party/sbase:uudecode",
    "//third_party/sbase:uuencode",
    "//third_party/sbase:wc",
    "//third_party/sbase:which",
    "//third_party/sbase:whoami",
    "//third_party/sbase:xargs",
    "//third_party/sbase:xinstall",
    "//third_party/sbase:yes",
  ]
}

group("test_runner") {
  testonly = true
  public_deps = [
    "//garnet/bin/test_runner:run_integration_tests",
    "//garnet/bin/test_runner:run_test",
  ]
}

group("terminal") {
  testonly = true
  public_deps = [ "//garnet/bin/terminal" ]
}

group("wlanif") {
  public_deps = [
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanif",
  ]
}

group("wlanphy") {
  public_deps = [
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("far") {
  testonly = true
  public_deps = [
    "//src/sys/pkg/bin/far",
    "//src/sys/pkg/bin/far:host",
  ]
}

group("ralink") {
  public_deps = [
    "//src/connectivity/wlan/drivers/mediatek/ralink",
    "//src/connectivity/wlan/drivers/wlan",
    "//src/connectivity/wlan/drivers/wlanphy",
  ]
}

group("iquery") {
  testonly = true
  public_deps = [ "//src/diagnostics/iquery" ]
}

group("bluetooth_core") {
  public_deps = [
    "//src/connectivity/bluetooth/core/bt-gap",
    "//src/connectivity/bluetooth/core/bt-host",
    "//src/connectivity/bluetooth/core/bt-init",
    "//src/connectivity/bluetooth/tools/bt-snoop",
  ]
}

group("debug_agent") {
  testonly = true
  public_deps = [ "//src/developer/debug/debug_agent" ]
}

group("sysmem_connector") {
  public_deps = [ "//garnet/bin/sysmem_connector" ]
}

group("wlan_drivers") {
  public_deps = [
    "//garnet/packages/prod:atheros",
    "//garnet/packages/prod:broadcom",
    "//garnet/packages/prod:ralink",
    "//garnet/packages/prod:realtek",
    "//garnet/packages/prod:wifi_intel",
    "//garnet/packages/prod:wlanif",
    "//garnet/packages/prod:wlanphy",
  ]
}

group("bluetooth_all") {
  testonly = true
  public_deps = [
    "//garnet/packages/prod:bluetooth_atheros",
    "//garnet/packages/prod:bluetooth_core",
    "//garnet/packages/prod:bluetooth_hci",
    "//garnet/packages/prod:bluetooth_intel",
    "//garnet/packages/prod:bluetooth_profiles",
  ]
}

group("magma-arm-mali") {
  public_deps = [
    "//garnet/packages/prod:sysmem_connector",
    "//src/graphics/lib/magma/gnbuild/magma-arm-mali:magma-vulkan",
  ]
}

if (target_cpu == "x64") {
  group("magma-intel-gen") {
    public_deps = [
      "//garnet/packages/prod:sysmem_connector",
      "//src/graphics/lib/magma/gnbuild/magma-intel-gen:magma-vulkan",
    ]
  }
}

group("magma-img-rgx-mt8167") {
  public_deps =
      [ "//src/graphics/lib/magma/gnbuild/magma-img-rgx:magma-vulkan" ]
}

group("magma-qcom-adreno") {
  public_deps = [
    "//garnet/packages/prod:sysmem_connector",
    "//src/graphics/lib/magma/gnbuild/magma-qcom-adreno:magma-vulkan",
  ]
}

group("magma-vsl-gc") {
  public_deps = [ "//src/graphics/lib/magma/gnbuild/magma-vsl-gc:magma-vulkan" ]
}

group("setui_client") {
  testonly = true
  public_deps = [ "//garnet/bin/setui_client" ]
}

group("tee_manager") {
  public_deps = [
    "//src/security/tee_manager",
    "//src/security/tee_manager:config",
  ]
}

group("goldfish-vulkan") {
  testonly = true
  public_deps = [ "//src/graphics/lib/goldfish-vulkan/gnbuild:goldfish-vulkan" ]
}
