xref: /netbsd-src/external/apache2/llvm/dist/llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn (revision 82d56013d7b633d116a93943de88e08335357a7c)
1import("//clang-tools-extra/clangd/quality/gen_decision_forest.gni")
2import("//clang-tools-extra/clangd/xpc/enable.gni")
3import("//llvm/utils/gn/build/write_cmake_config.gni")
4
5config("features_config") {
6  # To pick up the generated inc files.
7  include_dirs = [ target_gen_dir ]
8  visibility = [ ":features" ]
9}
10
11write_cmake_config("features") {
12  input = "Features.inc.in"
13  output = "$target_gen_dir/Features.inc"
14  values = [
15    "CLANGD_ENABLE_REMOTE=0",
16    "CLANGD_MALLOC_TRIM=1",
17    "ENABLE_GRPC_REFLECTION=0",
18  ]
19  if (clangd_build_xpc) {
20    values += [ "CLANGD_BUILD_XPC=1" ]
21  } else {
22    values += [ "CLANGD_BUILD_XPC=0" ]
23  }
24  public_configs = [ ":features_config" ]
25}
26
27gen_decision_forest("CompletionModel") {
28  model = "quality/model"
29  filename = "CompletionModel"
30  cpp_class = "clang::clangd::Example"
31  deps = [ "//clang/lib/Sema" ]
32}
33
34static_library("clangd") {
35  output_name = "clangDaemon"
36  configs += [ "//llvm/utils/gn/build:clang_code" ]
37  deps = [
38    ":CompletionModel",
39    ":features",
40    "//clang-tools-extra/clang-tidy",
41    "//clang-tools-extra/clang-tidy:all-checks",
42    "//clang-tools-extra/clang-tidy:clang-tidy-config",
43    "//clang-tools-extra/clangd/support",
44    "//clang/lib/AST",
45    "//clang/lib/ASTMatchers",
46    "//clang/lib/Basic",
47    "//clang/lib/Driver",
48    "//clang/lib/Format",
49    "//clang/lib/Frontend",
50    "//clang/lib/Index",
51    "//clang/lib/Lex",
52    "//clang/lib/Sema",
53    "//clang/lib/Serialization",
54    "//clang/lib/Tooling",
55    "//clang/lib/Tooling/Core",
56    "//clang/lib/Tooling/Inclusions",
57    "//clang/lib/Tooling/Refactoring",
58    "//clang/lib/Tooling/Syntax",
59    "//llvm/lib/Support",
60    "//llvm/lib/Target:AllTargetsInfos",
61    "//llvm/utils/gn/build/libs/pthread",
62  ]
63  include_dirs = [
64    ".",
65
66    # To pick up the generated inc files.
67    "$target_gen_dir/tool",
68  ]
69  sources = [
70    "AST.cpp",
71    "ASTSignals.cpp",
72    "ClangdLSPServer.cpp",
73    "ClangdServer.cpp",
74    "CodeComplete.cpp",
75    "CodeCompletionStrings.cpp",
76    "CollectMacros.cpp",
77    "CompileCommands.cpp",
78    "Compiler.cpp",
79    "Config.cpp",
80    "ConfigCompile.cpp",
81    "ConfigProvider.cpp",
82    "ConfigYAML.cpp",
83    "Diagnostics.cpp",
84    "DraftStore.cpp",
85    "DumpAST.cpp",
86    "ExpectedTypes.cpp",
87    "FS.cpp",
88    "FeatureModule.cpp",
89    "FileDistance.cpp",
90    "FindSymbols.cpp",
91    "FindTarget.cpp",
92    "Format.cpp",
93    "FuzzyMatch.cpp",
94    "GlobalCompilationDatabase.cpp",
95    "HeaderSourceSwitch.cpp",
96    "Headers.cpp",
97    "HeuristicResolver.cpp",
98    "Hover.cpp",
99    "IncludeFixer.cpp",
100    "InlayHints.cpp",
101    "JSONTransport.cpp",
102    "ParsedAST.cpp",
103    "PathMapping.cpp",
104    "Preamble.cpp",
105    "Protocol.cpp",
106    "Quality.cpp",
107    "QueryDriverDatabase.cpp",
108    "RIFF.cpp",
109    "Selection.cpp",
110    "SemanticHighlighting.cpp",
111    "SemanticSelection.cpp",
112    "SourceCode.cpp",
113    "TUScheduler.cpp",
114    "TidyProvider.cpp",
115    "URI.cpp",
116    "XRefs.cpp",
117    "index/Background.cpp",
118    "index/BackgroundIndexLoader.cpp",
119    "index/BackgroundIndexStorage.cpp",
120    "index/BackgroundQueue.cpp",
121    "index/BackgroundRebuild.cpp",
122    "index/CanonicalIncludes.cpp",
123    "index/FileIndex.cpp",
124    "index/Index.cpp",
125    "index/IndexAction.cpp",
126    "index/MemIndex.cpp",
127    "index/Merge.cpp",
128    "index/ProjectAware.cpp",
129    "index/Ref.cpp",
130    "index/Relation.cpp",
131    "index/Serialization.cpp",
132    "index/Symbol.cpp",
133    "index/SymbolCollector.cpp",
134    "index/SymbolID.cpp",
135    "index/SymbolLocation.cpp",
136    "index/SymbolOrigin.cpp",
137    "index/YAMLSerialization.cpp",
138    "index/dex/Dex.cpp",
139    "index/dex/Iterator.cpp",
140    "index/dex/PostingList.cpp",
141    "index/dex/Trigram.cpp",
142    "refactor/Rename.cpp",
143    "refactor/Tweak.cpp",
144  ]
145}
146