Skip to content

Commit be79ae5

Browse files
committed
ci: fix in windows environment
1 parent 64cd0b4 commit be79ae5

File tree

1 file changed

+49
-27
lines changed

1 file changed

+49
-27
lines changed

.github/workflows/CI.yml

Lines changed: 49 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -116,51 +116,73 @@ jobs:
116116
pnpm store prune || true
117117
pnpm config set store-dir ~/.pnpm-store
118118
continue-on-error: true
119+
- name: Install ARM64 Build Tools (Windows)
120+
if: ${{ contains(matrix.settings.host, 'windows') && matrix.settings.target == 'aarch64-pc-windows-msvc' }}
121+
run: |
122+
echo "Installing ARM64 Build Tools for aarch64-pc-windows-msvc target..."
123+
curl -o vs_buildtools.exe https://aka.ms/vs/17/release/vs_buildtools.exe
124+
.\vs_buildtools.exe --quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64
125+
shell: cmd
126+
continue-on-error: true
119127
- name: Setup MSVC Environment (Windows)
120128
if: ${{ contains(matrix.settings.host, 'windows') }}
121129
run: |
122-
echo "Looking for Visual Studio installation..."
130+
echo "Setting up MSVC environment for target: ${{ matrix.settings.target }}"
123131
124-
REM Try different Visual Studio paths
132+
# For ARM64 targets, we need to set up cross-compilation environment
133+
if "%{{ matrix.settings.target }}"=="aarch64-pc-windows-msvc" (
134+
echo "Setting up ARM64 cross-compilation environment..."
135+
REM Try to find ARM64 toolchain
136+
if exist "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\*\bin\Hostx64\arm64\cl.exe" (
137+
echo "Found ARM64 toolchain in VS2022 BuildTools"
138+
for /d %%i in ("C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\*") do (
139+
set "VCToolsVersion=%%~ni"
140+
set "VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC"
141+
set "PATH=%%i\bin\Hostx64\arm64;%PATH%"
142+
goto :arm64_found
143+
)
144+
)
145+
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\*\bin\Hostx64\arm64\cl.exe" (
146+
echo "Found ARM64 toolchain in VS2019 BuildTools"
147+
for /d %%i in ("C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\*") do (
148+
set "VCToolsVersion=%%~ni"
149+
set "VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC"
150+
set "PATH=%%i\bin\Hostx64\arm64;%PATH%"
151+
goto :arm64_found
152+
)
153+
)
154+
echo "ARM64 toolchain not found, falling back to x64 toolchain"
155+
goto :setup_x64
156+
:arm64_found
157+
echo "ARM64 toolchain setup completed"
158+
goto :done
159+
)
160+
161+
:setup_x64
162+
echo "Setting up x64 MSVC environment..."
163+
REM Try different Visual Studio paths for x64
125164
if exist "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" (
126165
echo "Found Visual Studio 2022 BuildTools"
127166
call "C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
128-
goto :found
167+
goto :done
129168
)
130-
131169
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" (
132170
echo "Found Visual Studio 2019 BuildTools"
133171
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
134-
goto :found
172+
goto :done
135173
)
136-
137-
if exist "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" (
138-
echo "Found Visual Studio 2022 Community"
139-
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
140-
goto :found
141-
)
142-
143-
if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" (
144-
echo "Found Visual Studio 2019 Community"
145-
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
146-
goto :found
147-
)
148-
149-
echo "Visual Studio not found in standard locations"
150-
echo "Trying to find vcvarsall.bat using where command..."
174+
echo "Visual Studio not found, trying to find vcvarsall.bat..."
151175
for /f "tokens=*" %%i in ('where vcvarsall.bat 2^>nul') do (
152176
echo "Found vcvarsall.bat at: %%i"
153177
call "%%i" x64
154-
goto :found
178+
goto :done
155179
)
180+
echo "Warning: Visual Studio Build Tools not found"
156181
157-
echo "Error: Visual Studio Build Tools not found"
158-
echo "Please install Visual Studio Build Tools with C++ workload"
159-
exit /b 1
160-
161-
:found
162-
echo "Visual Studio environment setup completed"
182+
:done
183+
echo "MSVC environment setup completed"
163184
shell: cmd
185+
continue-on-error: true
164186

165187
- name: Install Rust (Windows)
166188
if: ${{ contains(matrix.settings.host, 'windows') }}

0 commit comments

Comments
 (0)