I just looked at one example...Wayland's meson.build is 142 LOC, but build.zig is 581.
https://github.com/allyourcodebase/wayland/blob/master/build... https://github.com/wayland-mirror/wayland/blob/main/meson.bu...
https://github.com/allyourcodebase/wayland/blob/master/build... https://github.com/wayland-mirror/wayland/blob/main/meson.bu...
meson.build
meson_options.txt
doc/meson.build
egl/meson.build
src/meson.build
tests/meson.build
cursor/meson.build
doc/doxygen/meson.build
doc/publican/meson.build
doc/doxygen/xml/meson.build
doc/publican/sources/meson.build
doc/doxygen/xml/Client/meson.build
doc/doxygen/xml/Server/meson.build``` const wayland_version_header = b.addConfigHeader(.{ .style = .{ .cmake = upstream.path("src/wayland-version.h.in") }, }, .{ .WAYLAND_VERSION_MAJOR = @as(i64, @intCast(version.major)), .WAYLAND_VERSION_MINOR = @as(i64, @intCast(version.minor)), .WAYLAND_VERSION_MICRO = @as(i64, @intCast(version.patch)), .WAYLAND_VERSION = b.fmt("{f}", .{version}), });
```
which is doing some config automake work. Which Meson does implicitly(magically).