# 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/toolchain/environment_redirect.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/usb",
    "$zx/system/fidl/fuchsia-net-stack:c",
    "$zx/third_party/ulib",
    "async",
    "async-loop",
    "async-testutils",
    "audio-driver-proto",
    "audio-proto-utils",
    "audio-utils",
    "backtrace-request",
    "bitmap",
    "blktest",
    "blobfs",
    "block-client",
    "bootdata",
    "bootfs",
    "c",
    "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-async",
    "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",
    "minfs",
    "mini-process",
    "pci",
    "perftest",
    "port",
    "pretty",
    "process-launcher",
    "region-alloc",
    "rtc",
    "runtests-utils",
    "runtime",
    "smbios",
    "storage-metrics",
    "svc",
    "sync",
    "syslog",
    "task-utils",
    "tee-client-api",
    "test-utils",
    "tftp",
    "trace",
    "trace:trace-with-static-engine",
    "trace-engine",
    "trace-engine:trace-engine-headers-for-reader",
    "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",
  ]
}
