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