authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-27 22:24:15-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-03-27 22:24:15-04:00
loge803490a562cdc6f0f8aa03a6d35c1b7c78379f7
treed1d3c7a5eb1f1b6d8379216003c0709b69c5d398
parentf407109070be2a187c71cc2350ac6d9b7d64a3d0
signaturelock-open Commit is signed but in an unrecognized format.

cmake: support finding a cross compiled llvm


1 files changed, 287 insertions(+), 103 deletions(-)

cmake/Findllvm.cmake+287-103
......@@ -7,118 +7,302 @@
77# LLVM_LIBRARIES
88# LLVM_LIBDIRS
99
10find_program(LLVM_CONFIG_EXE
11 NAMES llvm-config-10 llvm-config-10.0 llvm-config100 llvm-config
12 PATHS
13 "/mingw64/bin"
14 "/c/msys64/mingw64/bin"
15 "c:/msys64/mingw64/bin"
16 "C:/Libraries/llvm-10.0.0/bin")
17
18if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
19 message(FATAL_ERROR "unable to find llvm-config")
20endif()
21
22if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
23 message(FATAL_ERROR "unable to find llvm-config")
24endif()
25
26execute_process(
27 COMMAND ${LLVM_CONFIG_EXE} --version
28 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
29 OUTPUT_STRIP_TRAILING_WHITESPACE)
30
31if("${LLVM_CONFIG_VERSION}" VERSION_LESS 10)
32 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
33endif()
34if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 11)
35 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
36endif()
37if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 11)
38 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
39endif()
40
41execute_process(
42 COMMAND ${LLVM_CONFIG_EXE} --targets-built
43 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
44 OUTPUT_STRIP_TRAILING_WHITESPACE)
45string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
46function(NEED_TARGET TARGET_NAME)
47 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
48 if (${_index} EQUAL -1)
49 message(FATAL_ERROR "LLVM is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.")
50 endif()
51endfunction(NEED_TARGET)
52NEED_TARGET("AArch64")
53NEED_TARGET("AMDGPU")
54NEED_TARGET("ARM")
55NEED_TARGET("BPF")
56NEED_TARGET("Hexagon")
57NEED_TARGET("Lanai")
58NEED_TARGET("Mips")
59NEED_TARGET("MSP430")
60NEED_TARGET("NVPTX")
61NEED_TARGET("PowerPC")
62NEED_TARGET("RISCV")
63NEED_TARGET("Sparc")
64NEED_TARGET("SystemZ")
65NEED_TARGET("WebAssembly")
66NEED_TARGET("X86")
67NEED_TARGET("XCore")
10if(ZIG_CROSSCOMPILING)
11 # Here we assume that we're cross compiling with Zig, of course. No reason
12 # to support more complicated setups. We also assume the experimental target
13 # AVR is enabled.
6814
69if(ZIG_STATIC_LLVM)
70 execute_process(
71 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
72 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
73 OUTPUT_STRIP_TRAILING_WHITESPACE)
74 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
15 find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h
16 PATHS
17 /usr/lib/llvm/10/include
18 /usr/lib/llvm-10/include
19 /usr/lib/llvm-10.0/include
20 /usr/local/llvm100/include
21 /mingw64/include)
7522
76 execute_process(
77 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
78 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
79 OUTPUT_STRIP_TRAILING_WHITESPACE)
80 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
23 macro(FIND_AND_ADD_LLVM_LIB _libname_)
24 string(TOUPPER ${_libname_} _prettylibname_)
25 find_library(LLVM_${_prettylibname_}_LIB NAMES ${_libname_}
26 PATHS
27 ${LLVM_LIBDIRS}
28 /usr/lib/llvm/10/lib
29 /usr/lib/llvm-10/lib
30 /usr/lib/llvm-10.0/lib
31 /usr/local/llvm100/lib
32 /mingw64/lib
33 /c/msys64/mingw64/lib
34 c:\\msys64\\mingw64\\lib)
35 if(LLVM_${_prettylibname_}_LIB)
36 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB})
37 endif()
38 endmacro(FIND_AND_ADD_LLVM_LIB)
8139
40 # This list can be re-generated with `llvm-config --libfiles` and then
41 # reformatting using your favorite text editor. Note we do not execute
42 # `llvm-config` here because we are cross compiling.
43 FIND_AND_ADD_LLVM_LIB(LLVMXRay)
44 FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest)
45 FIND_AND_ADD_LLVM_LIB(LLVMTableGen)
46 FIND_AND_ADD_LLVM_LIB(LLVMSymbolize)
47 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
48 FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT)
49 FIND_AND_ADD_LLVM_LIB(LLVMOrcError)
50 FIND_AND_ADD_LLVM_LIB(LLVMJITLink)
51 FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML)
52 FIND_AND_ADD_LLVM_LIB(LLVMMCA)
53 FIND_AND_ADD_LLVM_LIB(LLVMLTO)
54 FIND_AND_ADD_LLVM_LIB(LLVMPasses)
55 FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
56 FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
57 FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
58 FIND_AND_ADD_LLVM_LIB(LLVMInterpreter)
59 FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate)
60 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
61 FIND_AND_ADD_LLVM_LIB(LLVMMCJIT)
62 FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine)
63 FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld)
64 FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
65 FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
66 FIND_AND_ADD_LLVM_LIB(LLVMOption)
67 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
68 FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
69 FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
70 FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler)
71 FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen)
72 FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser)
73 FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc)
74 FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo)
75 FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
76 FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
77 FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
78 FIND_AND_ADD_LLVM_LIB(LLVMXCoreInfo)
79 FIND_AND_ADD_LLVM_LIB(LLVMX86Disassembler)
80 FIND_AND_ADD_LLVM_LIB(LLVMX86AsmParser)
81 FIND_AND_ADD_LLVM_LIB(LLVMX86CodeGen)
82 FIND_AND_ADD_LLVM_LIB(LLVMX86Desc)
83 FIND_AND_ADD_LLVM_LIB(LLVMX86Utils)
84 FIND_AND_ADD_LLVM_LIB(LLVMX86Info)
85 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler)
86 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen)
87 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc)
88 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser)
89 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo)
90 FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler)
91 FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
92 FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser)
93 FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
94 FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
95 FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
96 FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
97 FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
98 FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc)
99 FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo)
100 FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler)
101 FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen)
102 FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser)
103 FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc)
104 FIND_AND_ADD_LLVM_LIB(LLVMRISCVUtils)
105 FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo)
106 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler)
107 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen)
108 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser)
109 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDesc)
110 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCInfo)
111 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXCodeGen)
112 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXDesc)
113 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXInfo)
114 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Disassembler)
115 FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen)
116 FIND_AND_ADD_LLVM_LIB(LLVMMSP430AsmParser)
117 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc)
118 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info)
119 FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler)
120 FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen)
121 FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser)
122 FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc)
123 FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo)
124 FIND_AND_ADD_LLVM_LIB(LLVMLanaiDisassembler)
125 FIND_AND_ADD_LLVM_LIB(LLVMLanaiCodeGen)
126 FIND_AND_ADD_LLVM_LIB(LLVMLanaiAsmParser)
127 FIND_AND_ADD_LLVM_LIB(LLVMLanaiDesc)
128 FIND_AND_ADD_LLVM_LIB(LLVMLanaiInfo)
129 FIND_AND_ADD_LLVM_LIB(LLVMHexagonDisassembler)
130 FIND_AND_ADD_LLVM_LIB(LLVMHexagonCodeGen)
131 FIND_AND_ADD_LLVM_LIB(LLVMHexagonAsmParser)
132 FIND_AND_ADD_LLVM_LIB(LLVMHexagonDesc)
133 FIND_AND_ADD_LLVM_LIB(LLVMHexagonInfo)
134 FIND_AND_ADD_LLVM_LIB(LLVMBPFDisassembler)
135 FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen)
136 FIND_AND_ADD_LLVM_LIB(LLVMBPFAsmParser)
137 FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc)
138 FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo)
139 FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler)
140 FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen)
141 FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser)
142 FIND_AND_ADD_LLVM_LIB(LLVMARMDesc)
143 FIND_AND_ADD_LLVM_LIB(LLVMARMUtils)
144 FIND_AND_ADD_LLVM_LIB(LLVMARMInfo)
145 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler)
146 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen)
147 FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
148 FIND_AND_ADD_LLVM_LIB(LLVMipo)
149 FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
150 FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
151 FIND_AND_ADD_LLVM_LIB(LLVMLinker)
152 FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
153 FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
154 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser)
155 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDesc)
156 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUUtils)
157 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUInfo)
158 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Disassembler)
159 FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
160 FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen)
161 FIND_AND_ADD_LLVM_LIB(LLVMCFGuard)
162 FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
163 FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG)
164 FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
165 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
166 FIND_AND_ADD_LLVM_LIB(LLVMCodeGen)
167 FIND_AND_ADD_LLVM_LIB(LLVMTarget)
168 FIND_AND_ADD_LLVM_LIB(LLVMScalarOpts)
169 FIND_AND_ADD_LLVM_LIB(LLVMInstCombine)
170 FIND_AND_ADD_LLVM_LIB(LLVMAggressiveInstCombine)
171 FIND_AND_ADD_LLVM_LIB(LLVMTransformUtils)
172 FIND_AND_ADD_LLVM_LIB(LLVMBitWriter)
173 FIND_AND_ADD_LLVM_LIB(LLVMAnalysis)
174 FIND_AND_ADD_LLVM_LIB(LLVMProfileData)
175 FIND_AND_ADD_LLVM_LIB(LLVMObject)
176 FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
177 FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
178 FIND_AND_ADD_LLVM_LIB(LLVMCore)
179 FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
180 FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)
181 FIND_AND_ADD_LLVM_LIB(LLVMAArch64AsmParser)
182 FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
183 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc)
184 FIND_AND_ADD_LLVM_LIB(LLVMMC)
185 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
186 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
187 FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
188 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils)
189 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info)
190 FIND_AND_ADD_LLVM_LIB(LLVMSupport)
191 FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
192else()
193 find_program(LLVM_CONFIG_EXE
194 NAMES llvm-config-10 llvm-config-10.0 llvm-config100 llvm-config
195 PATHS
196 "/mingw64/bin"
197 "/c/msys64/mingw64/bin"
198 "c:/msys64/mingw64/bin"
199 "C:/Libraries/llvm-10.0.0/bin")
200
201 if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
202 message(FATAL_ERROR "unable to find llvm-config")
203 endif()
204
205 if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
206 message(FATAL_ERROR "unable to find llvm-config")
207 endif()
208
82209 execute_process(
83 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
84 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
85 OUTPUT_STRIP_TRAILING_WHITESPACE)
86 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
87endif()
88if(NOT LLVM_LIBRARIES)
89 execute_process(
90 COMMAND ${LLVM_CONFIG_EXE} --libs
91 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
92 OUTPUT_STRIP_TRAILING_WHITESPACE)
93 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
94
210 COMMAND ${LLVM_CONFIG_EXE} --version
211 OUTPUT_VARIABLE LLVM_CONFIG_VERSION
212 OUTPUT_STRIP_TRAILING_WHITESPACE)
213
214 if("${LLVM_CONFIG_VERSION}" VERSION_LESS 10)
215 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
216 endif()
217 if("${LLVM_CONFIG_VERSION}" VERSION_EQUAL 11)
218 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
219 endif()
220 if("${LLVM_CONFIG_VERSION}" VERSION_GREATER 11)
221 message(FATAL_ERROR "expected LLVM 10.x but found ${LLVM_CONFIG_VERSION}")
222 endif()
223
95224 execute_process(
96 COMMAND ${LLVM_CONFIG_EXE} --system-libs
97 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
98 OUTPUT_STRIP_TRAILING_WHITESPACE)
99 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
100
225 COMMAND ${LLVM_CONFIG_EXE} --targets-built
226 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
227 OUTPUT_STRIP_TRAILING_WHITESPACE)
228 string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
229 function(NEED_TARGET TARGET_NAME)
230 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
231 if (${_index} EQUAL -1)
232 message(FATAL_ERROR "LLVM is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.")
233 endif()
234 endfunction(NEED_TARGET)
235 NEED_TARGET("AArch64")
236 NEED_TARGET("AMDGPU")
237 NEED_TARGET("ARM")
238 NEED_TARGET("BPF")
239 NEED_TARGET("Hexagon")
240 NEED_TARGET("Lanai")
241 NEED_TARGET("Mips")
242 NEED_TARGET("MSP430")
243 NEED_TARGET("NVPTX")
244 NEED_TARGET("PowerPC")
245 NEED_TARGET("RISCV")
246 NEED_TARGET("Sparc")
247 NEED_TARGET("SystemZ")
248 NEED_TARGET("WebAssembly")
249 NEED_TARGET("X86")
250 NEED_TARGET("XCore")
251
252 if(ZIG_STATIC_LLVM)
253 execute_process(
254 COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static
255 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
256 OUTPUT_STRIP_TRAILING_WHITESPACE)
257 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
258
259 execute_process(
260 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
261 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
262 OUTPUT_STRIP_TRAILING_WHITESPACE)
263 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
264
265 execute_process(
266 COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static
267 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
268 OUTPUT_STRIP_TRAILING_WHITESPACE)
269 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
270 endif()
271 if(NOT LLVM_LIBRARIES)
272 execute_process(
273 COMMAND ${LLVM_CONFIG_EXE} --libs
274 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
275 OUTPUT_STRIP_TRAILING_WHITESPACE)
276 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
277
278 execute_process(
279 COMMAND ${LLVM_CONFIG_EXE} --system-libs
280 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
281 OUTPUT_STRIP_TRAILING_WHITESPACE)
282 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
283
284 execute_process(
285 COMMAND ${LLVM_CONFIG_EXE} --libdir
286 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
287 OUTPUT_STRIP_TRAILING_WHITESPACE)
288 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
289 endif()
290
101291 execute_process(
102 COMMAND ${LLVM_CONFIG_EXE} --libdir
103 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
292 COMMAND ${LLVM_CONFIG_EXE} --includedir
293 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
104294 OUTPUT_STRIP_TRAILING_WHITESPACE)
105 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
295
296 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
297
298 if(NOT LLVM_LIBRARIES)
299 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-10 LLVM-10.0)
300 endif()
301
302 link_directories("${CMAKE_PREFIX_PATH}/lib")
303 link_directories("${LLVM_LIBDIRS}")
106304endif()
107305
108execute_process(
109 COMMAND ${LLVM_CONFIG_EXE} --includedir
110 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
111 OUTPUT_STRIP_TRAILING_WHITESPACE)
112
113set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
114
115if(NOT LLVM_LIBRARIES)
116 find_library(LLVM_LIBRARIES NAMES LLVM LLVM-10 LLVM-10.0)
117endif()
118
119link_directories("${CMAKE_PREFIX_PATH}/lib")
120link_directories("${LLVM_LIBDIRS}")
121
122306include(FindPackageHandleStandardArgs)
123307find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)
124308