# The following subdirectories contain, or used to contain BUILD.gn
# files generated at 'gn gen' time by //build/zircon/populate_zircon_public.py.
#
# When moving the corresponding targets to the Fuchsia build (https://fxbug.dev/58463),
# the BUILD.gn is no longer auto-generated, and two things can happen:
#
#   1) A new BUILD.gn file is hand-rolled and added to the repository. In this
#      case its entry below must be removed.
#
#   2) The BUILD.gn in the current workspace becomes obsolete, but is still
#      present. Its entry could be removed from this file, but this makes an
#      untracked zircon/public/lib/<foo>/ directory appears in 'git status',
#      which is annoying (especially for tooling).
#
# To avoid the annoyance of case 2) above, the entries for obsolete libraries
# will be kept in this file. Later, once the build is unified, this .gitignore
# file will be entirely removed, and a public service announcement will be
# sent to instruct people to cleanup their workspace with:
#
#   git -C zircon/public/lib clean -df
#
abr/
arch/
arm64/
boringssl/
cmdline/
cmpctmalloc/
coresight/
counters/
ddk-platform-defs/
devicetree/
elfload/
explicit-memory/
host/
kcmdline/
lazy_init/
ldmsg/
lockdep/
mmio-ptr/
mmio-ptr-fake/
ngunwind/
ram-crashlog/
region-alloc/
runtime/
smbios/
syscalls-headers/
uart/
uart-mock/
usbhost-static/
vdso-code-header/
x86/
zbitl/
zircon-headers/
zx-panic-libc/
