import("//clang/lib/ARCMigrate/enable.gni")
import("//clang/lib/StaticAnalyzer/Frontend/enable.gni")
import("//llvm/utils/gn/build/toolchain/compiler.gni")

group("default") {
  deps = [
    "//clang-tools-extra/clang-apply-replacements/tool:clang-apply-replacements",
    "//clang-tools-extra/clang-tidy/tool:clang-tidy",
    "//clang/test",
    "//lld/test",
    "//llvm/test",
  ]
  if (current_os == "linux" || current_os == "android") {
    deps += [ "//compiler-rt/test/hwasan" ]
  }

  testonly = true
}

# Symlink handling.
# On POSIX, symlinks to the target can be created before the target exist,
# and the target can depend on the symlink targets, so that building the
# target ensures the symlinks exist.
# However, symlinks didn't exist on Windows until recently, so there the
# binary needs to be copied -- which requires it to exist. So the symlink step
# needs to run after the target that creates the binary.
# In the cmake build, this is done via a "postbuild" on the target, which just
# tacks on "&& copy out.exe out2.exe" to the link command.
# GN doesn't have a way to express postbuild commands.  It could probably be
# emulated by having the link command in the toolchain be a wrapper script that
# reads a ".symlinks" file next to the target, and have an action write that
# and make the target depend on that, but then every single link has to use the
# wrapper (unless we do further acrobatics to use a different toolchain for
# targets that need symlinks) even though most links don't need symlinks.
# Instead, have a top-level target for each target that needs symlinks, and
# make that depend on the symlinks. Then the symlinks can depend on the
# executable.  This has the effect that `ninja lld` builds lld and then creates
# symlinks (via this target), while `ninja bin/lld` only builds lld and doesn't
# update symlinks (in particular, on Windows it doesn't copy the new lld to its
# new locations).
# That seems simpler, more explicit, and good enough.
group("clang") {
  deps = [
    "//clang/tools/driver:symlinks",
  ]
}
group("lld") {
  deps = [
    "//lld/tools/lld:symlinks",
  ]
}
group("llvm-ar") {
  deps = [
    "//llvm/tools/llvm-ar:symlinks",
  ]
}
group("llvm-dwp") {
  deps = [
    "//llvm/tools/llvm-dwp:symlinks",
  ]
}
group("llvm-nm") {
  deps = [
    "//llvm/tools/llvm-nm:symlinks",
  ]
}
group("llvm-cxxfilt") {
  deps = [
    "//llvm/tools/llvm-cxxfilt:symlinks",
  ]
}
group("llvm-objcopy") {
  deps = [
    "//llvm/tools/llvm-objcopy:symlinks",
  ]
}
group("llvm-objdump") {
  deps = [
    "//llvm/tools/llvm-objdump:symlinks",
  ]
}
group("llvm-readobj") {
  deps = [
    "//llvm/tools/llvm-readobj:symlinks",
  ]
}
group("llvm-size") {
  deps = [
    "//llvm/tools/llvm-size:symlinks",
  ]
}
group("llvm-strings") {
  deps = [
    "//llvm/tools/llvm-strings:symlinks",
  ]
}
group("llvm-symbolizer") {
  deps = [
    "//llvm/tools/llvm-symbolizer:symlinks",
  ]
}

# A pool called "console" in the root BUILD.gn is magic and represents ninja's
# built-in console pool. (Requires a GN with `gn --version` >= 552353.)
pool("console") {
  depth = 1
}
