https://github.com/andrewrk/tetris
Встановлюємо основні залежності:
sudo xbps-install -Su zig libX11-devel MesaLib-devel glfw-devel
Встановлюємо libepoxy:
git clone git@github.com:anholt/libepoxy.git
cd libepoxy
mkdir _build && cd _build
meson
ninja
sudo ninja install
Вже після написання статті побачив, що libepoxy є в репозиторії Void, тому можете пробувати також sudo xbps-install -Su libepoxy.
Відповідно, залежності libX11-devel та MesaLib-devel вище можуть бути непотрібними, але це не точно:
sudo xbps-install -Su zig libepoxy glfw-devel
Встановлюємо tetris:
git clone git@github.com:andrewrk/tetris.git
Патчимо його під версію Zig 0.13, яка (поки що) за замовчуванням постачається Void.
На версії Zig 0.15 цього, мабуть, вже не доведеться робити, не перевіряв.
cd tetris
build.zig:
const exe = b.addExecutable(.{
.name = "tetris",
.root_source_file = b.path("src/main.zig"),
.optimize = optimize,
.target = target,
});
src/main.zig:
---callconv(.c)
+++callconv(.C)
Запускаємо:
zig build play
Wiki page
Richard talks with Zig Creator Andrew Kelley
Intro to Zig
ziglang.org
ziglang.org/documentation