Commit 3ac8d37182

Andrew Kelley <andrew@ziglang.org>
2024-04-25 23:12:55
update CMake files to LLVM 18
1 parent d9b00ee
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}"
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)
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)
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",
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)