6 ms·
You don't even necessarily need bindings to use Raylib in Zig. It uses Zig's build system so you can just clone Raylib's repo, add a couple of lines to build.zi
by stratts 3y ago
You don't even necessarily need bindings to use Raylib in Zig. It uses Zig's build system so you can just clone Raylib's repo, add a couple of lines to build.zig, and it's ready to go with autocompletion and everything.
Both Raylib and Zig include all dependencies too, so I was able to build a single 700kb .exe from Linux, copy that to my Windows machine, and it just worked immediately without any issues. Pretty amazing.
- rishav_sharan 3y agoWould you have any tutorial on how to do this? I am unable to get zig .11 to work with the latest raylib without binding libs. I am not sure what all changes I need to make to build.zig
- stratts 3y agoThis is what works for me, assuming an clean project created using 'zig init-exe': At the top of your build.zig, import the raylib build.zig inside raylib's /src folder (exact path will depend where you've cloned raylib) const raySdk = @import("raylib/src/build.zig"); Use the imported addRaylib() function to build raylib, then link to the exe and add include path var raylib = raySdk.addRaylib(b, target, optimize, .{}); exe.addIncludePath(.{ .path = "raylib/src" }); exe.linkLibrary(raylib); After that, you should be fine to just use @cImport to use raylib within your project const ray = @cImport({ @cInclude("raylib.h"); }); pub fn main() void { ray.InitWindow(800, 450, "raylib [core] example - basic window"); ...
- rishav_sharan 3y agoThank you. It worked perfectly for me. I was doing most of these but I was messing up the include path. your code samples helped me fix the issues in my build file. Have a great day!