import("//llvm/utils/TableGen/tablegen.gni")
import("//llvm/utils/gn/build/write_cmake_config.gni")
import("//llvm/version.gni")

tablegen("Options") {
  visibility = [ ":lldb-dap" ]
  args = [ "-gen-opt-parser-defs" ]
  td_file = "Options.td"
}

if (host_os == "mac") {
  write_cmake_config("write_info_plist") {
    input = "lldb-dap-Info.plist.in"
    output = "$target_gen_dir/lldb-dap-Info.plist"
    values = [ "LLDB_VERSION=$llvm_version" ]
  }
}

executable("lldb-dap") {
  configs += [ "//llvm/utils/gn/build:lldb_code" ]
  deps = [
    ":Options",
    "//lldb/tools/lldb-dap:lib",
  ]
  if (host_os == "mac") {
    deps += [ ":write_info_plist" ]
    plist = get_target_outputs(":write_info_plist")
    ldflags = [ "-Wl,-sectcreate,__TEXT,__info_plist," +
                rebase_path(plist[0], root_out_dir) ]
  }

  include_dirs = [ ".." ]

  sources = [ "lldb-dap.cpp" ]
}
