5454 id : cache-llvm
5555 with :
5656 path : ~/llvm
57- key : llvm-21.1.8-${{ matrix.target }}
57+ key : llvm-21.1.8-v2- ${{ matrix.target }}
5858
5959 - name : Install LLVM 21 (Homebrew)
6060 if : matrix.llvm_method == 'brew'
8282 matrix.target == 'aarch64-unknown-linux-gnu' &&
8383 steps.cache-llvm.outputs.cache-hit != 'true'
8484 run : |
85- LLVM_VERSION="21.1.8 "
86- LLVM_ARCHIVE="LLVM -${LLVM_VERSION}-Linux-ARM64 .tar.xz"
87- LLVM_URL="https://github.com/llvm /llvm-project /releases/download/llvmorg- ${LLVM_VERSION}/${LLVM_ARCHIVE}"
85+ LLVM_VERSION="21.1.3 "
86+ LLVM_ARCHIVE="clang+llvm -${LLVM_VERSION}-aarch64-linux-gnu .tar.xz"
87+ LLVM_URL="https://github.com/ycm-core /llvm/releases/download/${LLVM_VERSION}/${LLVM_ARCHIVE}"
8888 curl -sSfL "$LLVM_URL" -o llvm.tar.xz
8989 mkdir -p "$HOME/llvm"
9090 tar xf llvm.tar.xz --strip-components=1 -C "$HOME/llvm"
@@ -98,18 +98,12 @@ jobs:
9898 shell : pwsh
9999 run : |
100100 $LLVM_VERSION = "21.1.8"
101- $LLVM_ARCHIVE = "clang+llvm-${LLVM_VERSION}-x86_64-pc-windows-msvc.tar.xz"
102- $LLVM_URL = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/${LLVM_ARCHIVE}"
103- Invoke-WebRequest -Uri $LLVM_URL -OutFile llvm.tar.xz
104- New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\llvm" | Out-Null
105- 7z x llvm.tar.xz -so | 7z x -si -ttar -o"$env:USERPROFILE\llvm" -aoa
106- # Move contents up from nested directory
107- $nested = Get-ChildItem "$env:USERPROFILE\llvm" -Directory | Select-Object -First 1
108- if ($nested) {
109- Get-ChildItem $nested.FullName | Move-Item -Destination "$env:USERPROFILE\llvm" -Force
110- Remove-Item $nested.FullName -Recurse -Force
111- }
112- Remove-Item llvm.tar.xz -Force
101+ $LLVM_DIR = "$env:USERPROFILE\llvm"
102+ # Use the official installer which includes llvm-config and all target backends
103+ $LLVM_URL = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/LLVM-${LLVM_VERSION}-win64.exe"
104+ Invoke-WebRequest -Uri $LLVM_URL -OutFile llvm-installer.exe
105+ Start-Process -FilePath .\llvm-installer.exe -ArgumentList "/S","/D=$LLVM_DIR" -Wait -NoNewWindow
106+ Remove-Item llvm-installer.exe -Force
113107
114108 - name : Set LLVM prefix (Linux tarball)
115109 if : matrix.llvm_method == 'tarball' && runner.os == 'Linux'
@@ -124,7 +118,7 @@ jobs:
124118
125119 - name : Install musl tools
126120 if : matrix.target == 'x86_64-unknown-linux-musl'
127- run : sudo apt-get update && sudo apt-get install -y musl-tools
121+ run : sudo apt-get update && sudo apt-get install -y musl-tools perl make
128122
129123 - name : Install libxml2 (Windows)
130124 if : runner.os == 'Windows'
@@ -150,10 +144,18 @@ jobs:
150144
151145 # ── Build ─────────────────────────────────────────────────────
152146
153- - name : Build meshc
147+ - name : Build meshc (Unix)
148+ if : runner.os != 'Windows'
149+ run : cargo build --release --target ${{ matrix.target }}
150+ env :
151+ LLVM_SYS_211_PREFIX : ${{ env.LLVM_SYS_211_PREFIX }}
152+
153+ - name : Build meshc (Windows)
154+ if : runner.os == 'Windows'
154155 run : cargo build --release --target ${{ matrix.target }}
155156 env :
156157 LLVM_SYS_211_PREFIX : ${{ env.LLVM_SYS_211_PREFIX }}
158+ RUSTFLAGS : -Clink-args=/FORCE:MULTIPLE
157159
158160 # ── Strip & Package ───────────────────────────────────────────
159161
0 commit comments