zig/cmake/Findllvm.cmake

119 lines
2.7 KiB
CMake
Raw Normal View History

# Copyright (c) 2014 Andrew Kelley
# This file is MIT licensed.
# See http://opensource.org/licenses/MIT
# LLVM_FOUND
# LLVM_INCLUDE_DIRS
# LLVM_LIBRARIES
# LLVM_LIBDIRS
if(MSVC)
find_package(LLVM REQUIRED CONFIG)
# TODO: this currently doesn't work, it currently defines UNICODE but zig
# uses MBCS
#add_definitions(${LLVM_DEFINITIONS})
link_directories(${LLVM_LIBRARY_DIRS})
llvm_map_components_to_libnames(LLVM_LIBRARIES
LTO
Symbolize
XCoreDisassembler
XCoreCodeGen
XCoreAsmPrinter
SystemZDisassembler
SystemZCodeGen
SystemZAsmParser
SystemZAsmPrinter
SparcDisassembler
SparcCodeGen
SparcAsmParser
SparcAsmPrinter
PowerPCDisassembler
PowerPCCodeGen
PowerPCAsmParser
PowerPCAsmPrinter
NVPTXCodeGen
NVPTXAsmPrinter
MSP430CodeGen
MSP430AsmPrinter
MipsDisassembler
MipsCodeGen
MipsAsmParser
MipsAsmPrinter
LanaiDisassembler
LanaiCodeGen
LanaiAsmParser
LanaiAsmPrinter
HexagonDisassembler
HexagonCodeGen
HexagonAsmParser
BPFDisassembler
BPFCodeGen
BPFAsmPrinter
ARMDisassembler
ARMCodeGen
ARMAsmParser
ARMAsmPrinter
AMDGPUDisassembler
AMDGPUCodeGen
AMDGPUAsmParser
AMDGPUAsmPrinter
AArch64Disassembler
AArch64CodeGen
AArch64AsmParser
AArch64AsmPrinter
LibDriver
X86Disassembler
X86AsmParser
X86CodeGen
X86AsmPrinter
Core
)
else()
find_program(LLVM_CONFIG_EXE
NAMES llvm-config-5.0 llvm-config
PATHS
"/mingw64/bin"
"/c/msys64/mingw64/bin"
"c:/msys64/mingw64/bin"
"C:/Libraries/llvm-5.0.0/bin")
execute_process(
COMMAND ${LLVM_CONFIG_EXE} --libs
OUTPUT_VARIABLE LLVM_LIBRARIES
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${LLVM_CONFIG_EXE} --system-libs
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${LLVM_CONFIG_EXE} --libdir
OUTPUT_VARIABLE LLVM_LIBDIRS
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(
COMMAND ${LLVM_CONFIG_EXE} --includedir
OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
OUTPUT_STRIP_TRAILING_WHITESPACE)
find_library(LLVM_LIBRARY NAMES LLVM)
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
if(LLVM_LIBRARY AND NOT LLVM_LIBRARIES)
set(LLVM_LIBRARIES ${LLVM_LIBRARY})
endif()
link_directories("${CMAKE_PREFIX_PATH}/lib")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LLVM DEFAULT_MSG LLVM_LIBRARIES LLVM_INCLUDE_DIRS)
mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARIES LLVM_LIBDIRS)