/
CMakeLists.txt
152 lines (137 loc) · 3.1 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# Configure the Features.inc file.
if (NOT DEFINED CLANGD_BUILD_XPC)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CLANGD_BUILD_XPC_DEFAULT ON)
else ()
set(CLANGD_BUILD_XPC_DEFAULT OFF)
endif ()
llvm_canonicalize_cmake_booleans(CLANGD_BUILD_XPC_DEFAULT)
set(CLANGD_BUILD_XPC ${CLANGD_BUILD_XPC_DEFAULT} CACHE BOOL "Build XPC Support For Clangd." FORCE)
unset(CLANGD_BUILD_XPC_DEFAULT)
endif ()
llvm_canonicalize_cmake_booleans(CLANGD_BUILD_XPC)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Features.inc.in
${CMAKE_CURRENT_BINARY_DIR}/Features.inc
)
set(LLVM_LINK_COMPONENTS
Support
)
if(CLANG_BUILT_STANDALONE)
# needed to get HAVE_CXX_ATOMICS64_WITHOUT_LIB defined
include(CheckAtomic)
endif()
set(CLANGD_ATOMIC_LIB "")
if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
list(APPEND CLANGD_ATOMIC_LIB "atomic")
endif()
add_clang_library(clangDaemon
AST.cpp
Cancellation.cpp
ClangdLSPServer.cpp
ClangdServer.cpp
ClangdUnit.cpp
CodeComplete.cpp
CodeCompletionStrings.cpp
Compiler.cpp
Context.cpp
Diagnostics.cpp
DraftStore.cpp
ExpectedTypes.cpp
FindSymbols.cpp
FileDistance.cpp
FS.cpp
FSProvider.cpp
FormattedString.cpp
FuzzyMatch.cpp
GlobalCompilationDatabase.cpp
Headers.cpp
IncludeFixer.cpp
JSONTransport.cpp
Logger.cpp
Protocol.cpp
Quality.cpp
RIFF.cpp
Selection.cpp
SourceCode.cpp
Threading.cpp
Trace.cpp
TUScheduler.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/Rename.cpp
refactor/Tweak.cpp
LINK_LIBS
clangAST
clangASTMatchers
clangBasic
clangDriver
clangFormat
clangFrontend
clangIndex
clangLex
clangSema
clangSerialization
clangTidy
clangTidyAndroidModule
clangTidyAbseilModule
clangTidyBoostModule
clangTidyBugproneModule
clangTidyCERTModule
clangTidyCppCoreGuidelinesModule
clangTidyFuchsiaModule
clangTidyGoogleModule
clangTidyHICPPModule
clangTidyLLVMModule
clangTidyMiscModule
clangTidyModernizeModule
clangTidyObjCModule
clangTidyPerformanceModule
clangTidyPortabilityModule
clangTidyReadabilityModule
clangTidyZirconModule
clangTooling
clangToolingCore
clangToolingInclusions
clangToolingRefactor
${LLVM_PTHREAD_LIB}
${CLANGD_ATOMIC_LIB}
)
add_subdirectory(refactor/tweaks)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# FIXME: Make fuzzer not use linux-specific APIs, build it everywhere.
add_subdirectory(fuzzer)
endif()
add_subdirectory(tool)
add_subdirectory(indexer)
add_subdirectory(index/dex/dexp)
if (LLVM_INCLUDE_BENCHMARKS)
add_subdirectory(benchmarks)
endif()
if ( CLANGD_BUILD_XPC )
add_subdirectory(xpc)
endif ()
if(CLANG_INCLUDE_TESTS)
add_subdirectory(test)
add_subdirectory(unittests)
endif()