1@ECHO OFF
2@REM This script will build the compiler on any Windows system
3@REM It automatically installs a Zig compiler to \/.zig-cache
4@REM The output will be in .\zig-out\bin
5
6SET ROOT=%~dp0
7FOR /F "tokens=3 delims=, " %%i IN (
8 'FINDSTR /R "\.minimum_zig_version *= *""".+""",\n" ^
9 "%ROOT%build.zig.zon"'
10) DO SET ZIG_VERSION=%%i
11SET ZIG_VERSION=%ZIG_VERSION:~1,-1%
12IF NOT EXIST "%ROOT%.zig-cache\zig\%ZIG_VERSION%\zig.exe" GOTO :find_powershell
13:build
14"%ROOT%.zig-cache\zig\%ZIG_VERSION%\zig.exe" build %*
15EXIT /b %ERRORLEVEL%
16:find_powershell
17FOR %%i IN (pwsh powershell) DO WHERE %%i /Q && SET PS=%%i && GOTO :download
18ECHO Powershell not found. Please install it and try again.
19EXIT /b 1
20:download
21SET ZIG_ARCH=x86_64
22SET URI=https://ziglang.org/builds/zig-windows-%ZIG_ARCH%-%ZIG_VERSION%.zip
23SET X=$null = New-Item -ItemType Directory -Force -Path .zig-cache\zig
24SET X=%X%;Invoke-RestMethod -Uri %URI% -OutFile .zig-cache/zig-%ZIG_VERSION%.zip
25SET X=%X%;Expand-Archive .zig-cache/zig-%ZIG_VERSION%.zip -DestinationPath .zig-cache/zig
26SET X=%X%;Remove-Item .zig-cache/zig-%ZIG_VERSION%.zip
27%PS% -NoProfile -Command "%X%"
28MOVE .zig-cache\zig\zig-windows-%ZIG_ARCH%-%ZIG_VERSION% .zig-cache\zig\%ZIG_VERSION% >NUL
29GOTO :build