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