lofivor/justfile

74 lines
1.7 KiB
Makefile

set windows-shell := ["powershell.exe", "-NoLogo", "-Command"]
set shell := ["bash", "-c"]
default:
@just build
@just test
build:
zig build
run: build
zig build run
# build with release optimizations
release:
zig build -Doptimize=ReleaseSafe
release-fast:
zig build -Doptimize=ReleaseFast
release-small:
zig build -Doptimize=ReleaseSmall
# windows cross-compile
windows:
zig build -Dtarget=x86_64-windows-gnu -Doptimize=ReleaseSafe
windows-fast:
zig build -Dtarget=x86_64-windows-gnu -Doptimize=ReleaseFast
windows-small:
zig build -Dtarget=x86_64-windows-gnu -Doptimize=ReleaseSmall
# clean build artifacts
clean:
rm -rf zig-out .zig-cache
# check for compile errors without building
check:
zig build --summary all 2>&1 | head -50
test:
zig build test
# run sandbox (GPU compute is default)
sandbox:
zig build -Doptimize=ReleaseFast run
# auto-benchmark (ramps entities until performance degrades)
bench:
zig build -Doptimize=ReleaseFast run -- --bench
cat benchmark.log
# benchmark with CPU update path (for comparison)
bench-cpu:
zig build -Doptimize=ReleaseFast run -- --bench --cpu
cat benchmark.log
# software-rendered benchmark (for CI/headless servers)
[linux]
bench-sw:
@zig build -Doptimize=ReleaseFast
@xvfb-run -a ./zig-out/bin/sandbox --bench > /dev/null
@cat benchmark.log
[windows]
bench-sw:
@echo "bench-sw: windows doesn't have xvfb equivalent"
@echo "use 'just bench' if you have a GPU, or run in WSL/linux CI"
[linux]
profile port="9876":
# start Tracy: tracy-profiler -a 127.0.0.1 -p {{port}}
zig build -Dtracy=true -Doptimize=ReleaseFast && TRACY_PORT={{port}} ./zig-out/bin/sandbox