-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathbuild.bat
More file actions
49 lines (41 loc) · 1.55 KB
/
build.bat
File metadata and controls
49 lines (41 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@setlocal enabledelayedexpansion
@set REAL_ARCH=%PROCESSOR_ARCHITECTURE%
@echo %PROCESSOR_IDENTIFIER% | findstr /i "ARMv8" >nul
@if %errorlevel%==0 set REAL_ARCH=ARM64
@if %REAL_ARCH%==AMD64 (
set MSVCUP_ARCH=x86_64
set HOST_CPU=x64
) else if %REAL_ARCH%==ARM64 (
set MSVCUP_ARCH=aarch64
set HOST_CPU=arm64
) else (
echo error: unhandled PROCESSOR_ARCHITECTURE "%REAL_ARCH%"
)
@if "%~1"=="-h" (
echo Usage: build [TARGET_CPU]
echo TARGET_CPU can be one of x64, arm64 or x86
echo TARGET_CPU defaults to HOST_CPU ^(%HOST_CPU%^)
exit /b 1
)
@if "%~1"=="" (
set TARGET_CPU=%HOST_CPU%
) else (
set TARGET_CPU=%~1
)
@if not exist %~dp0msvcup.exe (
echo msvcup.exe: installing...
curl -L -o %~dp0msvcup.zip https://github.com/marler8997/msvcup/releases/download/v2026_03_02/msvcup-%MSVCUP_ARCH%-windows.zip
tar -C%~dp0 -xf %~dp0msvcup.zip
del %~dp0msvcup.zip
) else (
echo msvcup.exe: already installed
)
@if not exist %~dp0msvcup.exe exit /b 1
%~dp0msvcup.exe install %~dp0msvc --manifest-update-off autoenv msvc-14.44.17.14 sdk-10.0.22621.7 ninja-1.13.2 cmake-4.2.3
@if %errorlevel% neq 0 (exit /b %errorlevel%)
@if not exist %~dp0out\%TARGET_CPU%\build.ninja (
%~dp0msvc\bin\cmake.exe -S %~dp0 -B %~dp0out/%TARGET_CPU% -DCMAKE_TOOLCHAIN_FILE=%~dp0/msvc/autoenv/%TARGET_CPU%/toolchain-cross.cmake -GNinja -DCMAKE_MAKE_PROGRAM=%~dp0msvc\ninja.exe
@if %errorlevel% neq 0 (exit /b %errorlevel%)
)
@if not exist %~dp0out\%TARGET_CPU%\build.ninja exit /b 1
%~dp0msvc\ninja.exe -C %~dp0out\%TARGET_CPU%