Findllvm.cmake (15888B) - Raw
1 # Copyright (c) 2014 Andrew Kelley 2 # This file is MIT licensed. 3 # See http://opensource.org/licenses/MIT 4 5 # LLVM_FOUND 6 # LLVM_INCLUDE_DIRS 7 # LLVM_LIBRARIES 8 # LLVM_LIBDIRS 9 # LLVM_LINK_MODE 10 11 12 if(ZIG_USE_LLVM_CONFIG) 13 set(LLVM_CONFIG_ERROR_MESSAGES "") 14 while(1) 15 # If this variable is not unset, the same result is returned even though 16 # the ignore list has changed, causing the configure process to not 17 # terminate when the right LLVM version is not found. 18 unset(LLVM_CONFIG_EXE CACHE) 19 find_program(LLVM_CONFIG_EXE 20 NAMES llvm-config-20 llvm-config-20.0 llvm-config200 llvm-config20 llvm-config NAMES_PER_DIR 21 PATHS 22 "/mingw64/bin" 23 "/c/msys64/mingw64/bin" 24 "c:/msys64/mingw64/bin" 25 "C:/Libraries/llvm-20.0.0/bin") 26 27 if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND") 28 if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "") 29 list(JOIN LLVM_CONFIG_ERROR_MESSAGES "\n" LLVM_CONFIG_ERROR_MESSAGE) 30 message(FATAL_ERROR ${LLVM_CONFIG_ERROR_MESSAGE}) 31 else() 32 message(FATAL_ERROR "unable to find llvm-config") 33 endif() 34 endif() 35 36 # Check that this LLVM is the right version 37 execute_process( 38 COMMAND ${LLVM_CONFIG_EXE} --version 39 OUTPUT_VARIABLE LLVM_CONFIG_VERSION 40 OUTPUT_STRIP_TRAILING_WHITESPACE) 41 42 get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY) 43 if("${LLVM_CONFIG_VERSION}" VERSION_LESS 20 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 21 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 21) 44 # Save the error message, in case this is the last llvm-config we find 45 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 20.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}") 46 47 # Ignore this directory and try the search again 48 list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}") 49 continue() 50 endif() 51 52 # Check that this LLVM supports linking as a shared/static library, if requested 53 if (ZIG_SHARED_LLVM OR ZIG_STATIC_LLVM) 54 if (ZIG_SHARED_LLVM) 55 set(STATIC_OR_SHARED_LINK "--link-shared") 56 elseif (ZIG_STATIC_LLVM) 57 set(STATIC_OR_SHARED_LINK "--link-static") 58 endif() 59 60 execute_process( 61 COMMAND ${LLVM_CONFIG_EXE} --libs ${STATIC_OR_SHARED_LINK} 62 OUTPUT_QUIET 63 ERROR_VARIABLE LLVM_CONFIG_ERROR 64 ERROR_STRIP_TRAILING_WHITESPACE) 65 66 if (LLVM_CONFIG_ERROR) 67 # Save the error message, in case this is the last llvm-config we find 68 if (ZIG_SHARED_LLVM) 69 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library") 70 else() 71 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library") 72 endif() 73 74 # Ignore this directory and try the search again 75 list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}") 76 continue() 77 endif() 78 endif() 79 80 execute_process( 81 COMMAND ${LLVM_CONFIG_EXE} --targets-built 82 OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES 83 OUTPUT_STRIP_TRAILING_WHITESPACE) 84 string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}") 85 86 set(ZIG_LLVM_REQUIRED_TARGETS "AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SystemZ;VE;WebAssembly;X86;XCore") 87 88 set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED TRUE) 89 foreach(TARGET_NAME IN LISTS ZIG_LLVM_REQUIRED_TARGETS) 90 list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index) 91 if (${_index} EQUAL -1) 92 # Save the error message, in case this is the last llvm-config we find 93 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM (according to ${LLVM_CONFIG_EXE}) is missing target ${TARGET_NAME}. Zig requires LLVM to be built with all default targets enabled.") 94 95 # Ignore this directory and try the search again 96 list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}") 97 set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED FALSE) 98 break() 99 endif() 100 endforeach() 101 if (NOT ZIG_LLVM_REQUIRED_TARGETS_ENABLED) 102 continue() 103 endif() 104 105 # Got it! 106 break() 107 endwhile() 108 109 if(ZIG_SHARED_LLVM OR ZIG_STATIC_LLVM) 110 execute_process( 111 COMMAND ${LLVM_CONFIG_EXE} --libfiles ${STATIC_OR_SHARED_LINK} 112 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES 113 OUTPUT_STRIP_TRAILING_WHITESPACE) 114 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") 115 116 execute_process( 117 COMMAND ${LLVM_CONFIG_EXE} --libdir ${STATIC_OR_SHARED_LINK} 118 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES 119 OUTPUT_STRIP_TRAILING_WHITESPACE) 120 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") 121 122 execute_process( 123 COMMAND ${LLVM_CONFIG_EXE} --system-libs ${STATIC_OR_SHARED_LINK} 124 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES 125 OUTPUT_STRIP_TRAILING_WHITESPACE) 126 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") 127 128 execute_process( 129 COMMAND ${LLVM_CONFIG_EXE} --shared-mode ${STATIC_OR_SHARED_LINK} 130 OUTPUT_VARIABLE LLVM_LINK_MODE 131 OUTPUT_STRIP_TRAILING_WHITESPACE) 132 else() 133 execute_process( 134 COMMAND ${LLVM_CONFIG_EXE} --libs 135 OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES 136 OUTPUT_STRIP_TRAILING_WHITESPACE) 137 string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") 138 139 execute_process( 140 COMMAND ${LLVM_CONFIG_EXE} --libdir 141 OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES 142 OUTPUT_STRIP_TRAILING_WHITESPACE) 143 string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") 144 145 execute_process( 146 COMMAND ${LLVM_CONFIG_EXE} --system-libs 147 OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES 148 OUTPUT_STRIP_TRAILING_WHITESPACE) 149 string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") 150 151 execute_process( 152 COMMAND ${LLVM_CONFIG_EXE} --shared-mode 153 OUTPUT_VARIABLE LLVM_LINK_MODE 154 OUTPUT_STRIP_TRAILING_WHITESPACE) 155 endif() 156 157 if (${LLVM_LINK_MODE} STREQUAL "shared") 158 # We always ask for the system libs corresponding to static linking, 159 # since on some distros LLD is only available as a static library 160 # and we need these libraries to link it successfully 161 execute_process( 162 COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static 163 OUTPUT_VARIABLE LLVM_STATIC_SYSTEM_LIBS_SPACES 164 ERROR_QUIET # Some installations have no static libs, we just ignore the failure 165 OUTPUT_STRIP_TRAILING_WHITESPACE) 166 string(REPLACE " " ";" LLVM_STATIC_SYSTEM_LIBS "${LLVM_STATIC_SYSTEM_LIBS_SPACES}") 167 168 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS} ${LLVM_STATIC_SYSTEM_LIBS}) 169 else() 170 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS}) 171 endif() 172 173 execute_process( 174 COMMAND ${LLVM_CONFIG_EXE} --includedir 175 OUTPUT_VARIABLE LLVM_INCLUDE_DIRS_SPACES 176 OUTPUT_STRIP_TRAILING_WHITESPACE) 177 string(REPLACE " " ";" LLVM_INCLUDE_DIRS "${LLVM_INCLUDE_DIRS_SPACES}") 178 179 link_directories("${LLVM_LIBDIRS}") 180 else() 181 # Here we assume that we're cross compiling with Zig, of course. No reason 182 # to support more complicated setups. 183 184 macro(FIND_AND_ADD_LLVM_LIB _libname_) 185 string(TOUPPER ${_libname_} _prettylibname_) 186 find_library(LLVM_${_prettylibname_}_LIB 187 NAMES ${_libname_} NAMES_PER_DIR) 188 set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB}) 189 endmacro(FIND_AND_ADD_LLVM_LIB) 190 191 set(LLVM_LINK_MODE "static") 192 193 # This list can be re-generated with `llvm-config --libfiles` and then 194 # reformatting using your favorite text editor. Note we do not execute 195 # `llvm-config` here because we are cross compiling. 196 FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest) 197 FIND_AND_ADD_LLVM_LIB(LLVMXRay) 198 FIND_AND_ADD_LLVM_LIB(LLVMLibDriver) 199 FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver) 200 FIND_AND_ADD_LLVM_LIB(LLVMTelemetry) 201 FIND_AND_ADD_LLVM_LIB(LLVMTextAPIBinaryReader) 202 FIND_AND_ADD_LLVM_LIB(LLVMCoverage) 203 FIND_AND_ADD_LLVM_LIB(LLVMLineEditor) 204 FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler) 205 FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen) 206 FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc) 207 FIND_AND_ADD_LLVM_LIB(LLVMXCoreInfo) 208 FIND_AND_ADD_LLVM_LIB(LLVMX86TargetMCA) 209 FIND_AND_ADD_LLVM_LIB(LLVMX86Disassembler) 210 FIND_AND_ADD_LLVM_LIB(LLVMX86AsmParser) 211 FIND_AND_ADD_LLVM_LIB(LLVMX86CodeGen) 212 FIND_AND_ADD_LLVM_LIB(LLVMX86Desc) 213 FIND_AND_ADD_LLVM_LIB(LLVMX86Info) 214 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler) 215 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser) 216 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen) 217 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyUtils) 218 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc) 219 FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo) 220 FIND_AND_ADD_LLVM_LIB(LLVMVEDisassembler) 221 FIND_AND_ADD_LLVM_LIB(LLVMVEAsmParser) 222 FIND_AND_ADD_LLVM_LIB(LLVMVECodeGen) 223 FIND_AND_ADD_LLVM_LIB(LLVMVEDesc) 224 FIND_AND_ADD_LLVM_LIB(LLVMVEInfo) 225 FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler) 226 FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser) 227 FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen) 228 FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc) 229 FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo) 230 FIND_AND_ADD_LLVM_LIB(LLVMSPIRVCodeGen) 231 FIND_AND_ADD_LLVM_LIB(LLVMSPIRVDesc) 232 FIND_AND_ADD_LLVM_LIB(LLVMSPIRVInfo) 233 FIND_AND_ADD_LLVM_LIB(LLVMSPIRVAnalysis) 234 FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler) 235 FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser) 236 FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen) 237 FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc) 238 FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo) 239 FIND_AND_ADD_LLVM_LIB(LLVMRISCVTargetMCA) 240 FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler) 241 FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser) 242 FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen) 243 FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc) 244 FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo) 245 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler) 246 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser) 247 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen) 248 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDesc) 249 FIND_AND_ADD_LLVM_LIB(LLVMPowerPCInfo) 250 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXCodeGen) 251 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXDesc) 252 FIND_AND_ADD_LLVM_LIB(LLVMNVPTXInfo) 253 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Disassembler) 254 FIND_AND_ADD_LLVM_LIB(LLVMMSP430AsmParser) 255 FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen) 256 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc) 257 FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info) 258 FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler) 259 FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser) 260 FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen) 261 FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc) 262 FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo) 263 FIND_AND_ADD_LLVM_LIB(LLVMLoongArchDisassembler) 264 FIND_AND_ADD_LLVM_LIB(LLVMLoongArchAsmParser) 265 FIND_AND_ADD_LLVM_LIB(LLVMLoongArchCodeGen) 266 FIND_AND_ADD_LLVM_LIB(LLVMLoongArchDesc) 267 FIND_AND_ADD_LLVM_LIB(LLVMLoongArchInfo) 268 FIND_AND_ADD_LLVM_LIB(LLVMLanaiDisassembler) 269 FIND_AND_ADD_LLVM_LIB(LLVMLanaiCodeGen) 270 FIND_AND_ADD_LLVM_LIB(LLVMLanaiAsmParser) 271 FIND_AND_ADD_LLVM_LIB(LLVMLanaiDesc) 272 FIND_AND_ADD_LLVM_LIB(LLVMLanaiInfo) 273 FIND_AND_ADD_LLVM_LIB(LLVMHexagonDisassembler) 274 FIND_AND_ADD_LLVM_LIB(LLVMHexagonCodeGen) 275 FIND_AND_ADD_LLVM_LIB(LLVMHexagonAsmParser) 276 FIND_AND_ADD_LLVM_LIB(LLVMHexagonDesc) 277 FIND_AND_ADD_LLVM_LIB(LLVMHexagonInfo) 278 FIND_AND_ADD_LLVM_LIB(LLVMBPFDisassembler) 279 FIND_AND_ADD_LLVM_LIB(LLVMBPFAsmParser) 280 FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen) 281 FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc) 282 FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo) 283 FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler) 284 FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser) 285 FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen) 286 FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc) 287 FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo) 288 FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler) 289 FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser) 290 FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen) 291 FIND_AND_ADD_LLVM_LIB(LLVMARMDesc) 292 FIND_AND_ADD_LLVM_LIB(LLVMARMUtils) 293 FIND_AND_ADD_LLVM_LIB(LLVMARMInfo) 294 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUTargetMCA) 295 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler) 296 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser) 297 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen) 298 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDesc) 299 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUUtils) 300 FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUInfo) 301 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Disassembler) 302 FIND_AND_ADD_LLVM_LIB(LLVMAArch64AsmParser) 303 FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen) 304 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc) 305 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils) 306 FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info) 307 FIND_AND_ADD_LLVM_LIB(LLVMOrcDebugging) 308 FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT) 309 FIND_AND_ADD_LLVM_LIB(LLVMWindowsDriver) 310 FIND_AND_ADD_LLVM_LIB(LLVMMCJIT) 311 FIND_AND_ADD_LLVM_LIB(LLVMJITLink) 312 FIND_AND_ADD_LLVM_LIB(LLVMInterpreter) 313 FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine) 314 FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld) 315 FIND_AND_ADD_LLVM_LIB(LLVMOrcTargetProcess) 316 FIND_AND_ADD_LLVM_LIB(LLVMOrcShared) 317 FIND_AND_ADD_LLVM_LIB(LLVMDWP) 318 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoLogicalView) 319 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM) 320 FIND_AND_ADD_LLVM_LIB(LLVMOption) 321 FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML) 322 FIND_AND_ADD_LLVM_LIB(LLVMObjCopy) 323 FIND_AND_ADD_LLVM_LIB(LLVMMCA) 324 FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler) 325 FIND_AND_ADD_LLVM_LIB(LLVMLTO) 326 FIND_AND_ADD_LLVM_LIB(LLVMPasses) 327 FIND_AND_ADD_LLVM_LIB(LLVMHipStdPar) 328 FIND_AND_ADD_LLVM_LIB(LLVMCFGuard) 329 FIND_AND_ADD_LLVM_LIB(LLVMCoroutines) 330 FIND_AND_ADD_LLVM_LIB(LLVMipo) 331 FIND_AND_ADD_LLVM_LIB(LLVMVectorize) 332 FIND_AND_ADD_LLVM_LIB(LLVMSandboxIR) 333 FIND_AND_ADD_LLVM_LIB(LLVMLinker) 334 FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation) 335 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP) 336 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOffloading) 337 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC) 338 FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL) 339 FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver) 340 FIND_AND_ADD_LLVM_LIB(LLVMFrontendAtomic) 341 FIND_AND_ADD_LLVM_LIB(LLVMExtensions) 342 FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel) 343 FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic) 344 FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker) 345 FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel) 346 FIND_AND_ADD_LLVM_LIB(LLVMMIRParser) 347 FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter) 348 FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG) 349 FIND_AND_ADD_LLVM_LIB(LLVMCodeGen) 350 FIND_AND_ADD_LLVM_LIB(LLVMTarget) 351 FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts) 352 FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes) 353 FIND_AND_ADD_LLVM_LIB(LLVMCGData) 354 FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter) 355 FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub) 356 FIND_AND_ADD_LLVM_LIB(LLVMFileCheck) 357 FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate) 358 FIND_AND_ADD_LLVM_LIB(LLVMScalarOpts) 359 FIND_AND_ADD_LLVM_LIB(LLVMInstCombine) 360 FIND_AND_ADD_LLVM_LIB(LLVMAggressiveInstCombine) 361 FIND_AND_ADD_LLVM_LIB(LLVMTransformUtils) 362 FIND_AND_ADD_LLVM_LIB(LLVMBitWriter) 363 FIND_AND_ADD_LLVM_LIB(LLVMAnalysis) 364 FIND_AND_ADD_LLVM_LIB(LLVMProfileData) 365 FIND_AND_ADD_LLVM_LIB(LLVMSymbolize) 366 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoBTF) 367 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB) 368 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF) 369 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView) 370 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF) 371 FIND_AND_ADD_LLVM_LIB(LLVMObject) 372 FIND_AND_ADD_LLVM_LIB(LLVMTextAPI) 373 FIND_AND_ADD_LLVM_LIB(LLVMMCParser) 374 FIND_AND_ADD_LLVM_LIB(LLVMIRReader) 375 FIND_AND_ADD_LLVM_LIB(LLVMAsmParser) 376 FIND_AND_ADD_LLVM_LIB(LLVMMC) 377 FIND_AND_ADD_LLVM_LIB(LLVMBitReader) 378 FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI) 379 FIND_AND_ADD_LLVM_LIB(LLVMCore) 380 FIND_AND_ADD_LLVM_LIB(LLVMRemarks) 381 FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader) 382 FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat) 383 FIND_AND_ADD_LLVM_LIB(LLVMTargetParser) 384 FIND_AND_ADD_LLVM_LIB(LLVMSupport) 385 FIND_AND_ADD_LLVM_LIB(LLVMDemangle) 386 387 get_filename_component(LLVM_LIBDIRS "${LLVM_LLVMCORE_LIB}" DIRECTORY) 388 find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h) 389 endif() 390 391 include(FindPackageHandleStandardArgs) 392 find_package_handle_standard_args(llvm DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS) 393 394 mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIRS)