mirror of
https://github.com/ziglang/zig.git
synced 2024-12-01 01:22:50 +00:00
c40708a2ce
Line `link_directories("${CMAKE_PREFIX_PATH}/lib")` was evaluated as `link_directories("/lib")` in the default case of `CMAKE_PREFIX_PATH` being empty. This caused cmake to add `-L/lib -Wl,-rpath,/lib` to the zig2 build flags. This could result in errors on systems where libraries set via `CMAKE_LIBRARY_PATH` had conflicting versions in `/lib`: - `-L/lib` could cause linking zig2 to fail - `-Wl,-rpath,/lib` adds `/lib` as the first entry of the zig2 `RPATH`. This could cause running zig2 (to build zig3) to fail. In case of conflicting lib dirs, cmake emitted this warning, which is now fixed: ``` Cannot generate a safe runtime search path for target zig2 because files in some directories may conflict with libraries in implicit directories: runtime library [libclang-cpp.so.18.1] in /nix/store/...-clang-18.1.5-lib/lib may be hidden by files in: /lib ```
387 lines
15 KiB
CMake
387 lines
15 KiB
CMake
# 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
|
|
# LLVM_LINK_MODE
|
|
|
|
|
|
if(ZIG_USE_LLVM_CONFIG)
|
|
set(LLVM_CONFIG_ERROR_MESSAGES "")
|
|
while(1)
|
|
# If this variable is not unset, the same result is returned even though
|
|
# the ignore list has changed, causing the configure process to not
|
|
# terminate when the right LLVM version is not found.
|
|
unset(LLVM_CONFIG_EXE CACHE)
|
|
find_program(LLVM_CONFIG_EXE
|
|
NAMES llvm-config-18 llvm-config-18.0 llvm-config180 llvm-config18 llvm-config NAMES_PER_DIR
|
|
PATHS
|
|
"/mingw64/bin"
|
|
"/c/msys64/mingw64/bin"
|
|
"c:/msys64/mingw64/bin"
|
|
"C:/Libraries/llvm-18.0.0/bin")
|
|
|
|
if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
|
|
if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "")
|
|
list(JOIN LLVM_CONFIG_ERROR_MESSAGES "\n" LLVM_CONFIG_ERROR_MESSAGE)
|
|
message(FATAL_ERROR ${LLVM_CONFIG_ERROR_MESSAGE})
|
|
else()
|
|
message(FATAL_ERROR "unable to find llvm-config")
|
|
endif()
|
|
endif()
|
|
|
|
# Check that this LLVM is the right version
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --version
|
|
OUTPUT_VARIABLE LLVM_CONFIG_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY)
|
|
if("${LLVM_CONFIG_VERSION}" VERSION_LESS 18 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 19 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 19)
|
|
# Save the error message, in case this is the last llvm-config we find
|
|
list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 18.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}")
|
|
|
|
# Ignore this directory and try the search again
|
|
list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
|
|
continue()
|
|
endif()
|
|
|
|
# Check that this LLVM supports linking as a shared/static library, if requested
|
|
if (ZIG_SHARED_LLVM OR ZIG_STATIC_LLVM)
|
|
if (ZIG_SHARED_LLVM)
|
|
set(STATIC_OR_SHARED_LINK "--link-shared")
|
|
elseif (ZIG_STATIC_LLVM)
|
|
set(STATIC_OR_SHARED_LINK "--link-static")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --libs ${STATIC_OR_SHARED_LINK}
|
|
OUTPUT_QUIET
|
|
ERROR_VARIABLE LLVM_CONFIG_ERROR
|
|
ERROR_STRIP_TRAILING_WHITESPACE)
|
|
|
|
if (LLVM_CONFIG_ERROR)
|
|
# Save the error message, in case this is the last llvm-config we find
|
|
if (ZIG_SHARED_LLVM)
|
|
list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 18.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library")
|
|
else()
|
|
list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 18.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library")
|
|
endif()
|
|
|
|
# Ignore this directory and try the search again
|
|
list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
|
|
continue()
|
|
endif()
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --targets-built
|
|
OUTPUT_VARIABLE LLVM_TARGETS_BUILT_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_TARGETS_BUILT "${LLVM_TARGETS_BUILT_SPACES}")
|
|
|
|
set(ZIG_LLVM_REQUIRED_TARGETS "AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SystemZ;VE;WebAssembly;X86;XCore")
|
|
|
|
set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED TRUE)
|
|
foreach(TARGET_NAME IN LISTS ZIG_LLVM_REQUIRED_TARGETS)
|
|
list (FIND LLVM_TARGETS_BUILT "${TARGET_NAME}" _index)
|
|
if (${_index} EQUAL -1)
|
|
# Save the error message, in case this is the last llvm-config we find
|
|
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.")
|
|
|
|
# Ignore this directory and try the search again
|
|
list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
|
|
set(ZIG_LLVM_REQUIRED_TARGETS_ENABLED FALSE)
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
if (NOT ZIG_LLVM_REQUIRED_TARGETS_ENABLED)
|
|
continue()
|
|
endif()
|
|
|
|
# Got it!
|
|
break()
|
|
endwhile()
|
|
|
|
if(ZIG_SHARED_LLVM OR ZIG_STATIC_LLVM)
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --libfiles ${STATIC_OR_SHARED_LINK}
|
|
OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --libdir ${STATIC_OR_SHARED_LINK}
|
|
OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --system-libs ${STATIC_OR_SHARED_LINK}
|
|
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --shared-mode ${STATIC_OR_SHARED_LINK}
|
|
OUTPUT_VARIABLE LLVM_LINK_MODE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
else()
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --libs
|
|
OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --libdir
|
|
OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --system-libs
|
|
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}")
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --shared-mode
|
|
OUTPUT_VARIABLE LLVM_LINK_MODE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
endif()
|
|
|
|
if (${LLVM_LINK_MODE} STREQUAL "shared")
|
|
# We always ask for the system libs corresponding to static linking,
|
|
# since on some distros LLD is only available as a static library
|
|
# and we need these libraries to link it successfully
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static
|
|
OUTPUT_VARIABLE LLVM_STATIC_SYSTEM_LIBS_SPACES
|
|
ERROR_QUIET # Some installations have no static libs, we just ignore the failure
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_STATIC_SYSTEM_LIBS "${LLVM_STATIC_SYSTEM_LIBS_SPACES}")
|
|
|
|
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS} ${LLVM_STATIC_SYSTEM_LIBS})
|
|
else()
|
|
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_SYSTEM_LIBS})
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${LLVM_CONFIG_EXE} --includedir
|
|
OUTPUT_VARIABLE LLVM_INCLUDE_DIRS_SPACES
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
string(REPLACE " " ";" LLVM_INCLUDE_DIRS "${LLVM_INCLUDE_DIRS_SPACES}")
|
|
|
|
link_directories("${LLVM_LIBDIRS}")
|
|
else()
|
|
# Here we assume that we're cross compiling with Zig, of course. No reason
|
|
# to support more complicated setups.
|
|
|
|
macro(FIND_AND_ADD_LLVM_LIB _libname_)
|
|
string(TOUPPER ${_libname_} _prettylibname_)
|
|
find_library(LLVM_${_prettylibname_}_LIB
|
|
NAMES ${_libname_} NAMES_PER_DIR)
|
|
set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB})
|
|
endmacro(FIND_AND_ADD_LLVM_LIB)
|
|
|
|
set(LLVM_LINK_MODE "static")
|
|
|
|
# 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(LLVMWindowsManifest)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMXRay)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMTextAPIBinaryReader)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
|
|
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(LLVMX86TargetMCA)
|
|
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(LLVMX86Info)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyUtils)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWebAssemblyInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVEDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVEAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVECodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVEDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVEInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSparcInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVTargetMCA)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRISCVInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMPowerPCCodeGen)
|
|
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(LLVMMSP430AsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430CodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430Desc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMSP430Info)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMipsInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLoongArchDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLoongArchAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLoongArchCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLoongArchDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLoongArchInfo)
|
|
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(LLVMBPFAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBPFInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAVRInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMDesc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMUtils)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMARMInfo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUTargetMCA)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAMDGPUCodeGen)
|
|
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(LLVMAArch64AsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64CodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Desc)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Utils)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAArch64Info)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcDebugging)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMWindowsDriver)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMCJIT)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMJITLink)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMInterpreter)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMExecutionEngine)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRuntimeDyld)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcTargetProcess)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMOrcShared)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDWP)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoLogicalView)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMOption)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMObjCopy)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMCA)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLTO)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMPasses)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMHipStdPar)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCFGuard)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMipo)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMLinker)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOffloading)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMExtensions)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSelectionDAG)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCodeGen)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMTarget)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFileCheck)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFuzzMutate)
|
|
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(LLVMSymbolize)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoBTF)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMObject)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMMC)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMCore)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMBinaryFormat)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMTargetParser)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMSupport)
|
|
FIND_AND_ADD_LLVM_LIB(LLVMDemangle)
|
|
|
|
get_filename_component(LLVM_LIBDIRS "${LLVM_LLVMCORE_LIB}" DIRECTORY)
|
|
find_path(LLVM_INCLUDE_DIRS NAMES llvm/IR/IRBuilder.h)
|
|
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)
|