From 3ac8d37182504da72e151ac93da26a0f01782f95 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 25 Apr 2024 14:12:55 -0700 Subject: [PATCH] update CMake files to LLVM 18 --- CMakeLists.txt | 6 +++--- build.zig | 6 ++++++ cmake/Findclang.cmake | 6 +++--- cmake/Findlld.cmake | 32 ++++++++++++++++---------------- cmake/Findllvm.cmake | 18 ++++++++++++------ 5 files changed, 40 insertions(+), 28 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 718e89c7cb..071b613fd0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,9 +140,9 @@ else() set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig") endif() -find_package(llvm 17) -find_package(clang 17) -find_package(lld 17) +find_package(llvm 18) +find_package(clang 18) +find_package(lld 18) if(ZIG_STATIC_ZLIB) if (MSVC) diff --git a/build.zig b/build.zig index f5af65c7b5..5efd12c82c 100644 --- a/build.zig +++ b/build.zig @@ -1068,6 +1068,7 @@ const llvm_libs = [_][]const u8{ "LLVMXRay", "LLVMLibDriver", "LLVMDlltoolDriver", + "LLVMTextAPIBinaryReader", "LLVMCoverage", "LLVMLineEditor", "LLVMXCoreDisassembler", @@ -1169,6 +1170,7 @@ const llvm_libs = [_][]const u8{ "LLVMAArch64Desc", "LLVMAArch64Utils", "LLVMAArch64Info", + "LLVMOrcDebugging", "LLVMOrcJIT", "LLVMWindowsDriver", "LLVMMCJIT", @@ -1188,6 +1190,7 @@ const llvm_libs = [_][]const u8{ "LLVMMCDisassembler", "LLVMLTO", "LLVMPasses", + "LLVMHipStdPar", "LLVMCFGuard", "LLVMCoroutines", "LLVMipo", @@ -1195,10 +1198,13 @@ const llvm_libs = [_][]const u8{ "LLVMLinker", "LLVMInstrumentation", "LLVMFrontendOpenMP", + "LLVMFrontendOffloading", "LLVMFrontendOpenACC", "LLVMFrontendHLSL", + "LLVMFrontendDriver", "LLVMExtensions", "LLVMDWARFLinkerParallel", + "LLVMDWARFLinkerClassic", "LLVMDWARFLinker", "LLVMGlobalISel", "LLVMMIRParser", diff --git a/cmake/Findclang.cmake b/cmake/Findclang.cmake index af667a16c4..4a82f43755 100644 --- a/cmake/Findclang.cmake +++ b/cmake/Findclang.cmake @@ -17,9 +17,9 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h if(${LLVM_LINK_MODE} STREQUAL "shared") find_library(CLANG_LIBRARIES NAMES - libclang-cpp.so.17 - clang-cpp-17.0 - clang-cpp170 + libclang-cpp.so.18 + clang-cpp-18.0 + clang-cpp180 clang-cpp NAMES_PER_DIR HINTS "${LLVM_LIBDIRS}" diff --git a/cmake/Findlld.cmake b/cmake/Findlld.cmake index 319368d604..abe29b5fce 100644 --- a/cmake/Findlld.cmake +++ b/cmake/Findlld.cmake @@ -9,21 +9,21 @@ find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h HINTS ${LLVM_INCLUDE_DIRS} PATHS - /usr/lib/llvm-17/include - /usr/local/llvm170/include - /usr/local/llvm17/include - /usr/local/opt/llvm@17/include - /opt/homebrew/opt/llvm@17/include + /usr/lib/llvm-18/include + /usr/local/llvm180/include + /usr/local/llvm18/include + /usr/local/opt/llvm@18/include + /opt/homebrew/opt/llvm@18/include /mingw64/include) -find_library(LLD_LIBRARY NAMES lld-17.0 lld170 lld NAMES_PER_DIR +find_library(LLD_LIBRARY NAMES lld-18.0 lld180 lld NAMES_PER_DIR HINTS ${LLVM_LIBDIRS} PATHS - /usr/lib/llvm-17/lib - /usr/local/llvm170/lib - /usr/local/llvm17/lib - /usr/local/opt/llvm@17/lib - /opt/homebrew/opt/llvm@17/lib + /usr/lib/llvm-18/lib + /usr/local/llvm180/lib + /usr/local/llvm18/lib + /usr/local/opt/llvm@18/lib + /opt/homebrew/opt/llvm@18/lib ) if(EXISTS ${LLD_LIBRARY}) set(LLD_LIBRARIES ${LLD_LIBRARY}) @@ -34,11 +34,11 @@ else() HINTS ${LLVM_LIBDIRS} PATHS ${LLD_LIBDIRS} - /usr/lib/llvm-17/lib - /usr/local/llvm170/lib - /usr/local/llvm17/lib - /usr/local/opt/llvm@17/lib - /opt/homebrew/opt/llvm@17/lib + /usr/lib/llvm-18/lib + /usr/local/llvm180/lib + /usr/local/llvm18/lib + /usr/local/opt/llvm@18/lib + /opt/homebrew/opt/llvm@18/lib /mingw64/lib /c/msys64/mingw64/lib c:/msys64/mingw64/lib) diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake index f3c7907c01..f7e2db423a 100644 --- a/cmake/Findllvm.cmake +++ b/cmake/Findllvm.cmake @@ -14,12 +14,12 @@ if(ZIG_USE_LLVM_CONFIG) while(1) unset(LLVM_CONFIG_EXE CACHE) find_program(LLVM_CONFIG_EXE - NAMES llvm-config-17 llvm-config-17.0 llvm-config170 llvm-config17 llvm-config NAMES_PER_DIR + 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-17.0.0/bin") + "C:/Libraries/llvm-18.0.0/bin") if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND") if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "") @@ -37,9 +37,9 @@ if(ZIG_USE_LLVM_CONFIG) OUTPUT_STRIP_TRAILING_WHITESPACE) get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY) - if("${LLVM_CONFIG_VERSION}" VERSION_LESS 17 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 18 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 18) + 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 17.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}") + 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}") @@ -63,9 +63,9 @@ if(ZIG_USE_LLVM_CONFIG) 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 17.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library") + 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 17.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library") + 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 @@ -195,6 +195,7 @@ else() 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) @@ -296,6 +297,7 @@ else() 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) @@ -315,6 +317,7 @@ else() 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) @@ -322,10 +325,13 @@ else() 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)