Games-by-Mason/glfw-zig
GLFW ported to the Zig build system.
refs
refs
GLFW ported to the Zig build system.
Contributions or bug reports are welcome if behavior differs from official build system.
A notable addition to the official options is provide_headers
, which fetches all windowing headers not already provided by Zig from the official sources, enabling cross compilation. macOS frameworks are not provided. This option defaults to true.
See build.zig.zon for current version info.
Microsoft shuffled the button layouts for some of their controllers in a recent firmware update breaking existing mappings on Linux. This has been patched in SDL_GameControllerDB
, which GLFW should pull in on the next release.
In the mean time, you can manually apply the patch at runtime:
if (c.glfwUpdateGamepadMappings(
\\030000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
\\030000005e040000120b000015050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
) != c.GLFW_TRUE) {
log.warn("glfwUpdateGamepadMappings failed", .{});
}
The version of GLFW is set in build.zig.zon.
The official build process for GLFW generates some files at build time. These have been cached in generated
, when changing GLFW versions you may have to regenerate them via the official build process.