Miou-zora / Raylib-Zig-Nix

Minimal project for Raylib + Zig + Nix

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nix Flake for Zig + Raylib

This repository is a Nix flake for building Zig projects with Raylib. It is currently based on the master branch of Zig with the Zig-overlay. It use the raylib package from the Nixpkgs repository.

This repository is meant to be used as a template for Zig projects that use Raylib. It provides a flake.nix file that create a development environment with Zig and Raylib. It also provides a build.zig file that can be used to build the project.

Note

It's a direct raylib binding from C to Zig. It's not a wrapper around the C library.

πŸ“‘ Requirements

Important

You will need to enable nix-command and flakesexperimental features If you get an error about it, consider this command: mkdir -p ~/.config/nix && echo "experimental-features = nix-command flakes" | tee ~/.config/nix/nix.conf

⚑ Usage

πŸ”§ Setup

Clone this repository and run nix develop to enter the development environment

git clone https://github.com/Miou-zora/Raylib-Zig-Nix.git
cd Raylib-Zig-Nix
nix develop

Warning

Don't forget to remove the .git folder if you want to use this repository for a project.

Rename every name_of_your_project in the project by the name of your project.

πŸ‘· Building

zig build

πŸš€ Running

# It will build the project and run it. (do nothing if the project is already built)
zig build run
# or you can run the executable directly
./zig-out/bin/[name_of_your_project]

Note

nix build is not supported yet. If you try to use it, it will create a result symlink that contain the executable BUT musl isn't linked correctly to binary. It would be appreciated if someone could help me to fix this issue.

βž• Using direnv

You may load the devShell automatically using direnv shell integration.

echo "use flake" | tee .envrc
direnv allow

About

Minimal project for Raylib + Zig + Nix

License:MIT License


Languages

Language:Zig 78.6%Language:Nix 21.4%