Skip to content

Commit e9ca08f

Browse files
committed
Install llvm for arm
1 parent 476508d commit e9ca08f

2 files changed

Lines changed: 26 additions & 0 deletions

File tree

.github/workflows/reusable-windows-msi.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,25 @@ jobs:
3030
with:
3131
targets: i686-pc-windows-msvc,x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
3232
- name: Install LLVM for bindgen
33+
if: inputs.arch != 'arm64'
3334
shell: cmd
3435
run: |
3536
choco install llvm --allow-downgrade --no-progress --version 21.1.0
3637
if not exist "C:\Program Files\LLVM\bin\libclang.dll" exit /b 1
3738
echo LIBCLANG_PATH=C:\Program Files\LLVM\bin>> "%GITHUB_ENV%"
3839
echo LLVMInstallDir=C:\Program Files\LLVM>> "%GITHUB_ENV%"
40+
# Chocolatey's LLVM package only ships x64 binaries, which an ARM64-native
41+
# cargo process cannot load. Install the official ARM64 build directly.
42+
- name: Install LLVM for bindgen (ARM64)
43+
if: inputs.arch == 'arm64'
44+
shell: pwsh
45+
run: |
46+
$installer = Join-Path $env:RUNNER_TEMP 'LLVM-21.1.0-woa64.exe'
47+
Invoke-WebRequest 'https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.0/LLVM-21.1.0-woa64.exe' -OutFile $installer
48+
Start-Process -Wait -FilePath $installer -ArgumentList '/S','/D=C:\Program Files\LLVM'
49+
if (!(Test-Path 'C:\Program Files\LLVM\bin\libclang.dll')) { exit 1 }
50+
echo "LIBCLANG_PATH=C:\Program Files\LLVM\bin" >> $env:GITHUB_ENV
51+
echo "LLVMInstallDir=C:\Program Files\LLVM" >> $env:GITHUB_ENV
3952
- name: Build CPython installer
4053
run: ./Tools/msi/build.bat --doc -"${ARCH}"
4154
shell: bash

.github/workflows/reusable-windows.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,25 @@ jobs:
3333
with:
3434
targets: i686-pc-windows-msvc,x86_64-pc-windows-msvc,aarch64-pc-windows-msvc
3535
- name: Install LLVM for bindgen
36+
if: inputs.arch != 'arm64'
3637
shell: cmd
3738
run: |
3839
choco install llvm --allow-downgrade --no-progress --version 21.1.0
3940
if not exist "C:\Program Files\LLVM\bin\libclang.dll" exit /b 1
4041
echo LIBCLANG_PATH=C:\Program Files\LLVM\bin>> "%GITHUB_ENV%"
4142
echo LLVMInstallDir=C:\Program Files\LLVM>> "%GITHUB_ENV%"
43+
# Chocolatey's LLVM package only ships x64 binaries, which an ARM64-native
44+
# cargo process cannot load. Install the official ARM64 build directly.
45+
- name: Install LLVM for bindgen (ARM64)
46+
if: inputs.arch == 'arm64'
47+
shell: pwsh
48+
run: |
49+
$installer = Join-Path $env:RUNNER_TEMP 'LLVM-21.1.0-woa64.exe'
50+
Invoke-WebRequest 'https://github.com/llvm/llvm-project/releases/download/llvmorg-21.1.0/LLVM-21.1.0-woa64.exe' -OutFile $installer
51+
Start-Process -Wait -FilePath $installer -ArgumentList '/S','/D=C:\Program Files\LLVM'
52+
if (!(Test-Path 'C:\Program Files\LLVM\bin\libclang.dll')) { exit 1 }
53+
echo "LIBCLANG_PATH=C:\Program Files\LLVM\bin" >> $env:GITHUB_ENV
54+
echo "LLVMInstallDir=C:\Program Files\LLVM" >> $env:GITHUB_ENV
4255
- name: Register MSVC problem matcher
4356
if: inputs.arch != 'Win32'
4457
run: echo "::add-matcher::.github/problem-matchers/msvc.json"

0 commit comments

Comments
 (0)