diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 9fce9f93aa44..3ef4cccb8739 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -7,7 +7,7 @@ concurrency: cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} env: - CI_LLVM_VERSION: "17.0.2" + CI_LLVM_VERSION: "18.1.0-rc1" jobs: x86_64-windows-libs: @@ -177,30 +177,13 @@ jobs: path: llvm key: llvm-libs-${{ env.CI_LLVM_VERSION }}-msvc - - name: Download LLVM - if: steps.cache-llvm-libs.outputs.cache-hit != 'true' - run: | - iwr https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.CI_LLVM_VERSION }}/llvm-${{ env.CI_LLVM_VERSION }}.src.tar.xz -OutFile llvm.tar.xz - (Get-FileHash -Algorithm SHA256 .\llvm.tar.xz).hash -eq "D820E63BC3A6F4F833EC69A1EF49A2E81992E90BC23989F98946914B061AB6C7" - 7z x llvm.tar.xz - 7z x llvm.tar - mv llvm-* llvm-src - - - name: Download LLVM's CMake files - if: steps.cache-llvm-libs.outputs.cache-hit != 'true' - run: | - iwr https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ env.CI_LLVM_VERSION }}/cmake-${{ env.CI_LLVM_VERSION }}.src.tar.xz -OutFile cmake.tar.xz - (Get-FileHash -Algorithm SHA256 .\cmake.tar.xz).hash -eq "B6D83C91F12757030D8361DEDC5DD84357B3EDB8DA406B5D0850DF8B6F7798B1" - 7z x cmake.tar.xz - 7z x cmake.tar - mv cmake-* cmake - - name: Build LLVM if: steps.cache-llvm-libs.outputs.cache-hit != 'true' run: | + git clone --config core.autocrlf=false -b llvmorg-${{ env.CI_LLVM_VERSION }} --depth 1 https://github.com/llvm/llvm-project.git mkdir llvm-build cd llvm-build - cmake ..\llvm-src -Thost=x64 -DLLVM_TARGETS_TO_BUILD="X86;AArch64" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DBUILD_SHARED_LIBS=OFF -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_ZSTD=OFF + cmake ..\llvm-project\llvm -Thost=x64 -DLLVM_TARGETS_TO_BUILD="X86;AArch64" -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DBUILD_SHARED_LIBS=OFF -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_ZSTD=OFF cmake --build . --config Release cmake "-DCMAKE_INSTALL_PREFIX=$(pwd)\..\llvm" -P cmake_install.cmake @@ -235,7 +218,7 @@ jobs: uses: ./.github/workflows/win_build_portable.yml with: release: false - llvm_version: "17.0.2" + llvm_version: "18.1.0-rc1" x86_64-windows-test: runs-on: windows-2022 @@ -288,7 +271,7 @@ jobs: uses: ./.github/workflows/win_build_portable.yml with: release: true - llvm_version: "17.0.2" + llvm_version: "18.1.0-rc1" x86_64-windows-installer: if: github.repository_owner == 'crystal-lang' && (startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/ci/')) diff --git a/etc/win-ci/build-llvm.ps1 b/etc/win-ci/build-llvm.ps1 index b544e9eba784..9335cfe9abe4 100644 --- a/etc/win-ci/build-llvm.ps1 +++ b/etc/win-ci/build-llvm.ps1 @@ -16,7 +16,7 @@ if (-not $Dynamic) { Setup-Git -Path $BuildTree -Url https://github.com/llvm/llvm-project.git -Ref llvmorg-$Version Run-InDirectory $BuildTree\build { - $args = "-Thost=x64 -DLLVM_TARGETS_TO_BUILD=""$($TargetsToBuild -join ';')"" -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_ZSTD=OFF" + $args = "-Thost=x64 -DLLVM_TARGETS_TO_BUILD=$($TargetsToBuild -join ';') -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_ZSTD=OFF" if ($Dynamic) { $args = "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL $args" } else { diff --git a/src/llvm/ext/llvm-versions.txt b/src/llvm/ext/llvm-versions.txt index 7c8773c02212..92ae5ecbaa5a 100644 --- a/src/llvm/ext/llvm-versions.txt +++ b/src/llvm/ext/llvm-versions.txt @@ -1 +1 @@ -17.0 16.0 15.0 14.0 13.0 12.0 11.1 11.0 10.0 9.0 8.0 +18.1 17.0 16.0 15.0 14.0 13.0 12.0 11.1 11.0 10.0 9.0 8.0 diff --git a/src/llvm/lib_llvm.cr b/src/llvm/lib_llvm.cr index d5e7c2488002..b68e212d2052 100644 --- a/src/llvm/lib_llvm.cr +++ b/src/llvm/lib_llvm.cr @@ -35,7 +35,7 @@ @[Link(ldflags: {{ llvm_ldflags }})] lib LibLLVM - VERSION = {{ llvm_version.strip.gsub(/git/, "") }} + VERSION = {{ llvm_version.strip.gsub(/git/, "").gsub(/rc.*/, "") }} BUILT_TARGETS = {{ llvm_targets.strip.downcase.split(' ').map(&.id.symbolize) }} end {% end %}