# 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("$zx/public/gn/config/standard.gni")
import("$zx/public/gn/zbi.gni")

assert(current_toolchain != default_toolchain)
assert(current_cpu != "")

# TODO(BLD-353): This is all temporary hacks for integrating with
# the legacy Fuchsia GN build.  This file should not exist at all.

group("ulib") {
  testonly = true
  deps = [
    "$zx/system/dev/audio/lib/simple-audio-stream",
    "$zx/system/dev/lib/broadcom",
    "$zx/system/dev/lib/mmio",
    "$zx/system/dev/lib/operation",
    "$zx/system/dev/lib/usb",
    "$zx/system/fidl/fuchsia-net-stack:c",
    "$zx/third_party/ulib",
    "async",
    "async:async-cpp",
    "async:async-default",
    "async-loop",
    "async-loop:async-loop-cpp",
    "async-testutils",
    "audio-driver-proto",
    "audio-proto-utils",
    "audio-utils",
    "backtrace-request",
    "bitmap",
    "blktest",
    "blobfs",
    "block-client",
    "bootdata",
    "bootfs",
    "c",
    "c:crt1",
    "chromeos-disk-setup",
    "cmdline",
    "cobalt-client",
    "crypto",
    "ddk",
    "ddktl",
    "devmgr-integration-test",
    "devmgr-launcher",
    "digest",
    "dispatcher-pool",
    "driver",
    "driver-info",
    "edid",
    "elf-search",
    "elfload",
    "explicit-memory",
    "fbl",
    "fdio",
    "fidl",
    "fidl:fidl-llcpp",
    "fidl:fidl_base",
    "fidl-async",
    "fidl-async:fidl-async-cpp",
    "fidl-utils",
    "fit",
    "framebuffer",
    "fs",
    "fs-management",
    "fs-test-utils",
    "ftl",
    "fuzz-utils",
    "fvm",
    "fzl",
    "gfx",
    "gfx-font-data",
    "gpt",
    "hid",
    "hid-parser",
    "hwreg",
    "inet6",
    "inspect-vmo",
    "inspector",
    "intel-hda",
    "kvstore",
    "launchpad",
    "ldmsg",
    "libzbi",
    "loader-service",
    "lockdep",
    "log",
    "log-writer-logger",
    "log-writer-textfile",
    "logger",
    "memfs",
    "memfs:memfs-cpp",
    "minfs",
    "mini-process",
    "pci",
    "perftest",
    "port",
    "pretty",
    "process-launcher",
    "ramdevice-client",
    "region-alloc",
    "rtc",
    "runtests-utils",
    "runtime",
    "smbios",
    "storage-metrics",
    "svc",
    "sync",
    "syslog",
    "sysmem-connector",
    "task-utils",
    "tee-client-api",
    "test-utils",
    "tftp",
    "trace",
    "trace:trace-with-static-engine",
    "trace-engine",
    "trace-engine:trace-engine-headers-for-reader",
    "trace-engine:trace-engine-static",
    "trace-provider",
    "trace-provider:trace-provider-fdio-connect",
    "trace-provider:trace-provider-with-static-engine",
    "trace-reader",
    "trace-test-utils",
    "trace-vthread",
    "trace-vthread:trace-vthread-with-static-engine",
    "unittest",
    "utf_conversion",
    "virtio",
    "xdc-host-utils",
    "xdc-server-utils",
    "zbi-bootfs",
    "zircon",
    "zircon-internal",
    "zx",
    "zxcpp",
    "zxcrypt",
    "zxio",
    "zxs",
    "zxtest",
  ]
}
