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