forked from OSchip/llvm-project
gn build: Add some build files for clangd
Enough to build the clangd binaries, but this is still missing build files for: - fuzzer - indexer - index/dex/dexp - benchmarks - xpc Differential Revision: https://reviews.llvm.org/D59899 llvm-svn: 357182
This commit is contained in:
parent
afeff20c0f
commit
5f3b38e173
|
@ -6,9 +6,9 @@ set(LLVM_LINK_COMPONENTS
|
|||
|
||||
# A target containing all code tweaks (i.e. mini-refactorings) provided by
|
||||
# clangd.
|
||||
# Built as an object library to make sure linker does not remove global
|
||||
# Built as an object library to make sure the linker does not remove global
|
||||
# constructors that register individual tweaks in a global registry.
|
||||
# To enable these tweaks in exectubales or shared libraries, add
|
||||
# To enable these tweaks in executables or shared libraries, add
|
||||
# $<TARGET_OBJECTS:obj.clangDaemonTweaks> to a list of sources, see
|
||||
# clangd/tool/CMakeLists.txt for an example.
|
||||
add_clang_library(clangDaemonTweaks OBJECT
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
config("atomic_config") {
|
||||
visibility = [ ":atomic" ]
|
||||
libs = [ "atomic" ]
|
||||
}
|
||||
|
||||
group("atomic") {
|
||||
# Needed on platforms that have no native support for 64-bit atomics.
|
||||
# FIXME: Check which platforms need this; certainly needs to be false on
|
||||
# macOS and Windows, and doesn't seem to be needed on Linux either.
|
||||
needs_explicit_lib_atomic = false
|
||||
if (needs_explicit_lib_atomic) {
|
||||
public_configs = [ ":atomic_config" ]
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ group("default") {
|
|||
"//clang-tools-extra/clang-query/tool:clang-query",
|
||||
"//clang-tools-extra/clang-reorder-fields/tool:clang-reorder-fields",
|
||||
"//clang-tools-extra/clang-tidy/tool:clang-tidy",
|
||||
"//clang-tools-extra/clangd/tool:clangd",
|
||||
"//clang-tools-extra/modularize",
|
||||
"//clang-tools-extra/pp-trace",
|
||||
"//clang/test",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
static_library("clang-apply-replacements") {
|
||||
output_name = "clangApplyReplacements"
|
||||
configs += [ "//llvm/utils/gn/build:clang_code" ]
|
||||
deps = [
|
||||
"//clang/lib/AST",
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
static_library("clangd") {
|
||||
output_name = "clangDaemon"
|
||||
configs += [ "//llvm/utils/gn/build:clang_code" ]
|
||||
deps = [
|
||||
"//clang-tools-extra/clang-tidy/abseil",
|
||||
"//clang-tools-extra/clang-tidy/android",
|
||||
"//clang-tools-extra/clang-tidy/boost",
|
||||
"//clang-tools-extra/clang-tidy/bugprone",
|
||||
"//clang-tools-extra/clang-tidy/cert",
|
||||
"//clang-tools-extra/clang-tidy/cppcoreguidelines",
|
||||
"//clang-tools-extra/clang-tidy/fuchsia",
|
||||
"//clang-tools-extra/clang-tidy/google",
|
||||
"//clang-tools-extra/clang-tidy/hicpp",
|
||||
"//clang-tools-extra/clang-tidy/llvm",
|
||||
"//clang-tools-extra/clang-tidy/misc",
|
||||
"//clang-tools-extra/clang-tidy/modernize",
|
||||
"//clang-tools-extra/clang-tidy/objc",
|
||||
"//clang-tools-extra/clang-tidy/performance",
|
||||
"//clang-tools-extra/clang-tidy/portability",
|
||||
"//clang-tools-extra/clang-tidy/readability",
|
||||
"//clang-tools-extra/clang-tidy/zircon",
|
||||
"//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",
|
||||
"//llvm/lib/Support",
|
||||
"//llvm/utils/gn/build/libs/atomic",
|
||||
"//llvm/utils/gn/build/libs/pthread",
|
||||
]
|
||||
include_dirs = [ "." ]
|
||||
sources = [
|
||||
"AST.cpp",
|
||||
"Cancellation.cpp",
|
||||
"ClangdLSPServer.cpp",
|
||||
"ClangdServer.cpp",
|
||||
"ClangdUnit.cpp",
|
||||
"CodeComplete.cpp",
|
||||
"CodeCompletionStrings.cpp",
|
||||
"Compiler.cpp",
|
||||
"Context.cpp",
|
||||
"Diagnostics.cpp",
|
||||
"DraftStore.cpp",
|
||||
"ExpectedTypes.cpp",
|
||||
"FS.cpp",
|
||||
"FSProvider.cpp",
|
||||
"FileDistance.cpp",
|
||||
"FindSymbols.cpp",
|
||||
"FuzzyMatch.cpp",
|
||||
"GlobalCompilationDatabase.cpp",
|
||||
"Headers.cpp",
|
||||
"IncludeFixer.cpp",
|
||||
"JSONTransport.cpp",
|
||||
"Logger.cpp",
|
||||
"Protocol.cpp",
|
||||
"Quality.cpp",
|
||||
"RIFF.cpp",
|
||||
"Selection.cpp",
|
||||
"SourceCode.cpp",
|
||||
"TUScheduler.cpp",
|
||||
"Threading.cpp",
|
||||
"Trace.cpp",
|
||||
"URI.cpp",
|
||||
"XRefs.cpp",
|
||||
"index/Background.cpp",
|
||||
"index/BackgroundIndexStorage.cpp",
|
||||
"index/CanonicalIncludes.cpp",
|
||||
"index/FileIndex.cpp",
|
||||
"index/Index.cpp",
|
||||
"index/IndexAction.cpp",
|
||||
"index/MemIndex.cpp",
|
||||
"index/Merge.cpp",
|
||||
"index/Ref.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/Tweak.cpp",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
# A target containing all code tweaks (i.e. mini-refactorings) provided by
|
||||
# clangd.
|
||||
# Built as a source_set to make sure the linker does not remove global
|
||||
# constructors that register individual tweaks in a global registry.
|
||||
source_set("tweaks") {
|
||||
configs += [ "//llvm/utils/gn/build:clang_code" ]
|
||||
deps = [
|
||||
"//clang-tools-extra/clangd",
|
||||
"//clang/lib/AST",
|
||||
"//clang/lib/Tooling/Core",
|
||||
"//llvm/lib/Support",
|
||||
]
|
||||
include_dirs = [ "../.." ]
|
||||
sources = [
|
||||
"SwapIfBranches.cpp",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
import("//llvm/utils/gn/build/write_cmake_config.gni")
|
||||
|
||||
declare_args() {
|
||||
# Whether to build clangd's XPC components.
|
||||
clangd_build_xpc = false
|
||||
}
|
||||
|
||||
write_cmake_config("features") {
|
||||
# FIXME: Try moving Features.inc.in to tools, seems like a better location.
|
||||
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" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("clangd") {
|
||||
configs += [ "//llvm/utils/gn/build:clang_code" ]
|
||||
deps = [
|
||||
":features",
|
||||
"//clang-tools-extra/clang-tidy",
|
||||
"//clang-tools-extra/clangd",
|
||||
"//clang-tools-extra/clangd/refactor/tweaks",
|
||||
"//clang/lib/AST",
|
||||
"//clang/lib/Basic",
|
||||
"//clang/lib/Format",
|
||||
"//clang/lib/Frontend",
|
||||
"//clang/lib/Sema",
|
||||
"//clang/lib/Tooling",
|
||||
"//clang/lib/Tooling/Core",
|
||||
"//llvm/lib/Support",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"..",
|
||||
|
||||
# To pick up the generated inc files.
|
||||
"$target_gen_dir",
|
||||
]
|
||||
sources = [
|
||||
"ClangdMain.cpp",
|
||||
]
|
||||
|
||||
if (clangd_build_xpc) {
|
||||
# FIXME: Depend on clangdXpcJsonConversions, clangdXpcTransport
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue