import("//clang-tools-extra/clangd/xpc/enable.gni")
import("//llvm/utils/gn/build/write_cmake_config.gni")

config("features_config") {
  # To pick up the generated inc files.
  include_dirs = [ target_gen_dir ]
  visibility = [ ":features" ]
}

write_cmake_config("features") {
  input = "Features.inc.in"
  output = "$target_gen_dir/Features.inc"
  values = []
  if (clangd_build_xpc) {
    values += [ "CLANGD_BUILD_XPC=1" ]
  } else {
    values += [ "CLANGD_BUILD_XPC=0" ]
  }
  public_configs = [ ":features_config" ]
}

static_library("clangd") {
  output_name = "clangDaemon"
  configs += [ "//llvm/utils/gn/build:clang_code" ]
  deps = [
    ":features",
    "//clang-tools-extra/clang-tidy",
    "//clang-tools-extra/clang-tidy:all-checks",
    "//clang-tools-extra/clangd/support",
    "//clang/lib/AST",
    "//clang/lib/ASTMatchers",
    "//clang/lib/Basic",
    "//clang/lib/Driver",
    "//clang/lib/Format",
    "//clang/lib/Frontend",
    "//clang/lib/Index",
    "//clang/lib/Lex",
    "//clang/lib/Sema",
    "//clang/lib/Serialization",
    "//clang/lib/Tooling",
    "//clang/lib/Tooling/Core",
    "//clang/lib/Tooling/Inclusions",
    "//clang/lib/Tooling/Refactoring",
    "//clang/lib/Tooling/Syntax",
    "//llvm/lib/Support",
    "//llvm/lib/Target:AllTargetsInfos",
    "//llvm/utils/gn/build/libs/pthread",
  ]
  include_dirs = [
    ".",

    # To pick up the generated inc files.
    "$target_gen_dir/tool",
  ]
  sources = [
    "AST.cpp",
    "ClangdLSPServer.cpp",
    "ClangdServer.cpp",
    "CodeComplete.cpp",
    "CodeCompletionStrings.cpp",
    "CollectMacros.cpp",
    "CompileCommands.cpp",
    "Compiler.cpp",
    "Config.cpp",
    "ConfigCompile.cpp",
    "ConfigProvider.cpp",
    "ConfigYAML.cpp",
    "Diagnostics.cpp",
    "DraftStore.cpp",
    "ExpectedTypes.cpp",
    "FS.cpp",
    "FileDistance.cpp",
    "FindSymbols.cpp",
    "FindTarget.cpp",
    "Format.cpp",
    "FuzzyMatch.cpp",
    "GlobalCompilationDatabase.cpp",
    "HeaderSourceSwitch.cpp",
    "Headers.cpp",
    "Hover.cpp",
    "IncludeFixer.cpp",
    "JSONTransport.cpp",
    "ParsedAST.cpp",
    "PathMapping.cpp",
    "Preamble.cpp",
    "Protocol.cpp",
    "Quality.cpp",
    "QueryDriverDatabase.cpp",
    "RIFF.cpp",
    "Selection.cpp",
    "SemanticHighlighting.cpp",
    "SemanticSelection.cpp",
    "SourceCode.cpp",
    "TUScheduler.cpp",
    "URI.cpp",
    "XRefs.cpp",
    "index/Background.cpp",
    "index/BackgroundIndexLoader.cpp",
    "index/BackgroundIndexStorage.cpp",
    "index/BackgroundQueue.cpp",
    "index/BackgroundRebuild.cpp",
    "index/CanonicalIncludes.cpp",
    "index/FileIndex.cpp",
    "index/Index.cpp",
    "index/IndexAction.cpp",
    "index/MemIndex.cpp",
    "index/Merge.cpp",
    "index/Ref.cpp",
    "index/Relation.cpp",
    "index/Serialization.cpp",
    "index/Symbol.cpp",
    "index/SymbolCollector.cpp",
    "index/SymbolID.cpp",
    "index/SymbolLocation.cpp",
    "index/SymbolOrigin.cpp",
    "index/YAMLSerialization.cpp",
    "index/dex/Dex.cpp",
    "index/dex/Iterator.cpp",
    "index/dex/PostingList.cpp",
    "index/dex/Trigram.cpp",
    "refactor/Rename.cpp",
    "refactor/Tweak.cpp",
  ]
}
