/ztyping

Primary LanguageZig

ztyping

A reimplementation of UTyping in Zig, using wgpu-native for rendering

Platforms

Active platform support

  • Linux x86_64 glibc (x86_64-linux-gnu)

Compiles, ran at one point

Compiles, untested

  • MacOS aarch64 (aarch64-macos)

Does not compile

  • Linux x86_64 musl (x86_64-linux-musl)

Compilation

Setup the environment

Install the latest Zig 0.12.x from https://ziglang.org/ (or your favourite package manager)
Latest tested working version is 0.12.0-dev.1396+f6de3ec96, any newer or older versions may or may not work

Extras

Linux host

TODO

MacOS host

TODO

Windows host

TODO

Lets do it

Debug build

$ zig build

Release build

$ zig build -Doptimize=ReleaseFast

Options, explained

-Doptimize=X Sets the optimization settings for the compilation, possible options are:

  • Debug
  • ReleaseFast
  • ReleaseSmall
  • ReleaseSafe

-Dwgpu_from_source=true/false Whether to build wgpu-native from source or not, using the wgpu-native submodule, see here for info about setting up

-Dtarget=X Sets the target machine of the compilation, possible options are listed here in parentheses, below is a matrix of supported cross compilation targets, host on the top, target on the left

Linux x86_64 glibc Linux x86_64 musl MacOS x86_64 MacOS arm64 Windows x86_64 Windows arm64
Linux x86_64 glibc ✔️ 🟨 ✔️ ✔️
Linux x86_64 musl ✔️ ✔️
MacOS x86_64 ✔️ 🟨 ✔️ 🟨 ✔️ ✔️
MacOS arm64 ✔️ 🟨 ✔️ 🟨 ✔️ ✔️
Windows x86_64 ✔️ 🟨 ✔️ 🟨 ✔️ ✔️
Windows arm64
Windows x86

Notes

  • Native compilation will act differently than cross compilation, this table is specifically referencing cross compilation

✔️ = Tested working
🚧 = In progress
❌ = Broken
❓ = Untested, but likely broken
🟨 = Untested, but likely functional

Compiling wgpu-native from source

Why?

Allows debug builds and rapid modifications of wgpu-native, without packaging a library yourself

How?

Uses cross to setup a container for cross compilation of rust code, follow their setup instructions beforehand

From/to?

Linux x86_64 glibc Linux x86_64 musl MacOS x86_64 MacOS arm64 Windows x86_64
Linux x86_64 glibc ✔️ 🟨 🟨 🟨 🟨
Linux x86_64 musl
MacOS x86_64 🟨 🟨
MacOS arm64 🟨 🟨
Windows x86_64 ✔️ 🟨 🟨 🟨 🟨
Windows x86