Skip to content

Commit acc498f

Browse files
committed
make win-arm64 build more like upstream
1 parent 2d0c317 commit acc498f

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

.github/workflows/windows-arm.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,20 @@ jobs:
4848
4949
- name: Download and install LLVM installer
5050
run: |
51-
Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/LLVM-19.1.5-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe
51+
Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.8/LLVM-20.1.8-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe
5252
Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait
5353
echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
5454
55-
- name: Update CMake for WoA
56-
run: |
57-
pip install cmake
58-
get-command cmake
55+
- name: Install CMake and Ninja for Win-ARM64
56+
shell: pwsh
57+
run: |
58+
Invoke-WebRequest https://github.com/Kitware/CMake/releases/download/v3.29.4/cmake-3.29.4-windows-arm64.msi -OutFile cmake-arm64.msi
59+
Start-Process msiexec.exe -ArgumentList "/i cmake-arm64.msi /quiet /norestart" -Wait
60+
echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH
61+
62+
Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-winarm64.zip -OutFile ninja-winarm64.zip
63+
Expand-Archive ninja-winarm64.zip -DestinationPath ninja
64+
Copy-Item ninja\ninja.exe -Destination "C:\Windows\System32"
5965
6066
- name: Set env variables
6167
run: |

.github/workflows/windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
cat tools/LICENSE_win32.txt >> LICENSE.txt
132132
python -m pip wheel -w dist -vv .
133133
# move the mis-named scipy_openblas64-none-any.whl to a platform-specific name
134-
if [ -e dist/*any*.whl ]; then
134+
if [[ -e dist/*any*.whl ]]; then
135135
for f in dist/*.whl; do mv $f "${f/%any.whl/$WHEEL_PLAT.whl}"; done
136136
fi
137137

tools/build_steps_win_arm64.bat

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,32 @@ mkdir build || exit /b 1 & cd build || exit /b 1
9191
echo Setting up ARM64 Developer Command Prompt and running CMake...
9292

9393
:: Initialize VS ARM64 environment
94-
for /f "usebackq tokens=*" %%i in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath`) do call "%%i\VC\Auxiliary\Build\vcvarsall.bat" arm64
94+
CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsarm64.bat"
9595

9696
:: Prefer LLVM flang
9797
PATH=C:\Program Files\LLVM\bin;%PATH%
9898

9999
:: Run CMake and Ninja build
100+
100101
set CFLAGS=-Wno-reserved-macro-identifier -Wno-unsafe-buffer-usage
101-
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DUSE_THREADS=1 -DNUM_THREADS=24 -DTARGET=ARMV8 -DBUILD_SHARED_LIBS=ON -DARCH=arm64 ^
102-
-DBINARY=%build_bits% -DCMAKE_SYSTEM_PROCESSOR=ARM64 -DCMAKE_C_COMPILER=clang-cl ^
103-
-DCMAKE_Fortran_COMPILER=flang-new -DSYMBOLPREFIX="scipy_" -DLIBNAMEPREFIX="scipy_" %interface_flags%
102+
cmake .. -G Ninja ^
103+
-DCMAKE_BUILD_TYPE=Release ^
104+
-DTARGET=ARMV8 ^
105+
-DBINARY=%build_bits% ^
106+
-DCMAKE_C_COMPILER=clang-cl ^
107+
-DCMAKE_Fortran_COMPILER=flang-new ^
108+
-DBUILD_SHARED_LIBS=ON ^
109+
-DCMAKE_SYSTEM_PROCESSOR=arm64 ^
110+
-DCMAKE_SYSTEM_NAME=Windows ^
111+
-DSYMBOLPREFIX="scipy_" ^
112+
-DLIBNAMEPREFIX="scipy_" ^
113+
-DUSE_THREADS=1 ^
114+
-DNUM_THREADS=24 ^
115+
%interface_flags%
116+
104117
if errorlevel 1 exit /b 1
105118

106-
ninja
119+
ninja -j 16
107120
if errorlevel 1 exit /b 1
108121

109122
echo Build complete. Returning to Batch.

0 commit comments

Comments
 (0)