mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
cmake: support finding a cross compiled llvm
This commit is contained in:
parent
f407109070
commit
e803490a56
@ -7,6 +7,189 @@
|
|||||||
# LLVM_LIBRARIES
|
# LLVM_LIBRARIES
|
||||||
# LLVM_LIBDIRS
|
# LLVM_LIBDIRS
|
||||||
|
|
||||||
|
if(ZIG_CROSSCOMPILING)
|
||||||
|
# Here we assume that we're cross compiling with Zig, of course. No reason
|
||||||
|
# to support more complicated setups. We also assume the experimental target
|
||||||
|
# AVR is enabled.
|
||||||
|
|
||||||
|
find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h
|
||||||
|
PATHS
|
||||||
|
/usr/lib/llvm/10/include
|
||||||
|
/usr/lib/llvm-10/include
|
||||||
|
/usr/lib/llvm-10.0/include
|
||||||
|
/usr/local/llvm100/include
|
||||||
|
/mingw64/include)
|
||||||
|
|
||||||
|
macro(FIND_AND_ADD_LLVM_LIB _libname_)
|
||||||
|
string(TOUPPER ${_libname_} _prettylibname_)
|
||||||
|
find_library(LLVM_${_prettylibname_}_LIB NAMES ${_libname_}
|
||||||
|
PATHS
|
||||||
|
${LLVM_LIBDIRS}
|
||||||
|
/usr/lib/llvm/10/lib
|
||||||
|
/usr/lib/llvm-10/lib
|
||||||
|
/usr/lib/llvm-10.0/lib
|
||||||
|
/usr/local/llvm100/lib
|
||||||
|
/mingw64/lib
|
||||||
|
/c/msys64/mingw64/lib
|
||||||
|
c:\\msys64\\mingw64\\lib)
|
||||||
|
if(LLVM_${_prettylibname_}_LIB)
|
||||||
|
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB})
|
||||||
|
endif()
|
||||||
|
endmacro(FIND_AND_ADD_LLVM_LIB)
|
||||||
|
|
||||||
|
# This list can be re-generated with `llvm-config --libfiles` and then
|
||||||
|
# reformatting using your favorite text editor. Note we do not execute
|
||||||
|
# `llvm-config` here because we are cross compiling.
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMXRay)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMTableGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSymbolize)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcError)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMJITLink)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMCA)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLTO)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPasses)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMInterpreter)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMCJIT)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMOption)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMXCoreInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86Disassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86AsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86CodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86Desc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86Utils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMX86Info)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVUtils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMNVPTXCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMNVPTXDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMNVPTXInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430Disassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430AsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLanaiDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLanaiCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLanaiAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLanaiDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLanaiInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMHexagonDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMHexagonCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMHexagonAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMHexagonDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMHexagonInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMUtils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMARMInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMipo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMLinker)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDesc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUUtils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUInfo)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Disassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMCFGuard)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMCodeGen)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMTarget)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMScalarOpts)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMInstCombine)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAggressiveInstCombine)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMTransformUtils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBitWriter)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAnalysis)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMProfileData)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMObject)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMCore)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64AsmParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMMC)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMSupport)
|
||||||
|
FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
|
||||||
|
else()
|
||||||
find_program(LLVM_CONFIG_EXE
|
find_program(LLVM_CONFIG_EXE
|
||||||
NAMES llvm-config-10 llvm-config-10.0 llvm-config100 llvm-config
|
NAMES llvm-config-10 llvm-config-10.0 llvm-config100 llvm-config
|
||||||
PATHS
|
PATHS
|
||||||
@ -118,6 +301,7 @@ endif()
|
|||||||
|
|
||||||
link_directories("${CMAKE_PREFIX_PATH}/lib")
|
link_directories("${CMAKE_PREFIX_PATH}/lib")
|
||||||
link_directories("${LLVM_LIBDIRS}")
|
link_directories("${LLVM_LIBDIRS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)
|
find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user