raylib.zig
raylib.zig copied to clipboard
It doesn't build on latest zig
Trying to build a project using raylib with zig version
0.12.0-dev.3193+4ba4f94c9
Getting the following error.
As you can see the problem is that zig build now expects relative paths to c source files from the root build folder. So I've fixed that by changing the paths to be relative in build.zig
of the raylib submodule.
Now I get a different error, about marshal.h
not being found.
Then I realized the raylib submodule is just raylib, so I switched that to master. Now this is the error: https://pastebin.com/YZe4grhz
Which pushed me to try and regenerate the bindings. A file didn't compile because of FileSource
missing.
I've fixed that too by writing a custom relative path function, just like in the other file:
const srcdir = struct {
fn f() []const u8 {
return std.fs.path.dirname(@src().file).?;
}
}.f();
fn srcRelative(comptime path: []const u8) std.Build.LazyPath {
return .{ .path = srcdir ++ path };
}
(but later found out it's been renamed to LazyPath
).
Now I've tried to regenerate the bindings. zig build parse
worked, zig build intermediate
failed with UnexpectedToken
.
At this point I think I'm getting way too deep. Maintainer, please fix.
Ah didn't see this https://github.com/ryupold/raylib.zig/issues/37
I have found why the json conversion fails. The type of the field RaylibDefine.value
is a string, but the json contains numbers instead, sometimes. std.json
fails to convert from numbers to strings. Must be a recent change as well.
The fix would be to either modify the raylib_parser.c
to always output strings where strings are expected, or modify the parser in the zig standard library to accept numbers as strings.