NOTE: this changelog is only for changes to the sokol-zig 'scaffolding', e.g. changes to build.zig, to the example code or the supported Zig version. For actual Sokol header changes, see the sokol changelog.
Fix for a breaking naming convention change
in Zig's builtin.Type
. Since only a small code area in the bindings is affected (the asRange
helper
function) I decided to implement a fix that works both for zig 0.13.0 and the current
HEAD version.
E.g. if you're on Zig 0.13.0, you can safely update and if you are on the Zig HEAD version you definitely need to update.
More details in PR: floooh/sokol#1100
Important change for WASM/web builds: Merged PR #77, this changes the
Emscripten link step option .shell_file_path
from an absolute path string to
a Zig build system LazyPath
. This requires a small change in build.zig
when creating the Emscripten link step via emLinkStep()
. See the
updated code example in the readme for details (just remove a .getPath(b)
).
- the Emscripten SDK dependency has been updated to 3.1.61
- the Emscripten specific parts of build.zig have been updated to be more 'idiomatic' now. This also has the nice side effect that the dirty check for the Emscripten linker step now works as expected (e.g. the step will do nothing if the output is uptodate)
- added bindings for sokol_imgui.h (please read the section
## Dear ImGui support
in the readme, and also check out this example project) - the sokol C library name has been renamed from
sokol
tosokol_clib
, and is now exposed to the outside world viainstallArtifact()
(this allows a user of the sokol dependency to lookup the CompileStep for the sokol C library viadep_sokol.artifact("sokol_clib"))
which is important to inject a cimgui header search path (e.g. viadep_sokol.artifact("sokol_clib").addIncludePath(cimgui_root);
)
- update the emsdk dependency to 3.1.57
- some minor build.zig code cleanup
- test with Zig 0.12.0 release
BREAKING CHANGES
- The examples have been updated for the 'render pass cleanup' in sokol-gfx, please see the sokol changelog for details!
- Switched the master branch to support the Zig nightly versions, this is different from before where the master branch worked against the last stable Zig version. Previous stable Zig versions will be supported in 'archival branches' which remain frozen in time.
- Fixed the build.zig for the latest API changes in zig-0.12.0 and also did a general code cleanup.
- Switched over to use sokol-zig exclusively as package via the Zig package manager. The old way of integrating the bindings as git submodule is no longer supported.
- Integrate with the Emscripten SDK which enables straightforward support for building
Zig WebGL/WebGPU applications that run in web browsers (see README for details).
The way the Emscripten SDK is integrated isn't the 'final form' form though. Eventually
I want to move the Emscripten stuff into a separate
emsdk-zig
package, and rewrite the linker integration to be more 'Zig build system idiomatic'.
Most of the work was done by @kassane, many thanks!