diff --git a/build.zig b/build.zig index f8a548a..1939aba 100644 --- a/build.zig +++ b/build.zig @@ -33,12 +33,12 @@ pub fn build(b: *std.Build) void { .optimize = optimize_external, }), }); - dear_imgui_lib.addIncludePath(upstream.path("")); - dear_imgui_lib.addIncludePath(b.path("src/include")); + dear_imgui_lib.root_module.addIncludePath(upstream.path("")); + dear_imgui_lib.root_module.addIncludePath(b.path("src/include")); dear_imgui_lib.installHeadersDirectory(b.path("src/include"), "", .{}); dear_imgui_lib.installHeadersDirectory(upstream.path("."), "", .{}); - dear_imgui_lib.linkLibC(); - dear_imgui_lib.addCSourceFiles(.{ + dear_imgui_lib.root_module.link_libc = true; + dear_imgui_lib.root_module.addCSourceFiles(.{ .root = upstream.path(""), .files = &.{ "imgui.cpp", @@ -49,7 +49,7 @@ pub fn build(b: *std.Build) void { }, .flags = flags, }); - dear_imgui_lib.addCSourceFiles(.{ + dear_imgui_lib.root_module.addCSourceFiles(.{ .root = b.path("src/cached"), .files = &.{ "dcimgui.cpp", @@ -67,14 +67,14 @@ pub fn build(b: *std.Build) void { .optimize = optimize_external, }), }); - dear_imgui_vulkan_lib.linkLibrary(dear_imgui_lib); - dear_imgui_vulkan_lib.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_vulkan.cpp"), .flags = flags }); - dear_imgui_vulkan_lib.addCSourceFile(.{ .file = b.path("src/cached/dcimgui_impl_vulkan.cpp"), .flags = flags }); - dear_imgui_vulkan_lib.addIncludePath(b.path("src/include")); - dear_imgui_vulkan_lib.addIncludePath(upstream.path("")); - dear_imgui_vulkan_lib.addIncludePath(upstream.path("backends")); + dear_imgui_vulkan_lib.root_module.linkLibrary(dear_imgui_lib); + dear_imgui_vulkan_lib.root_module.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_vulkan.cpp"), .flags = flags }); + dear_imgui_vulkan_lib.root_module.addCSourceFile(.{ .file = b.path("src/cached/dcimgui_impl_vulkan.cpp"), .flags = flags }); + dear_imgui_vulkan_lib.root_module.addIncludePath(b.path("src/include")); + dear_imgui_vulkan_lib.root_module.addIncludePath(upstream.path("")); + dear_imgui_vulkan_lib.root_module.addIncludePath(upstream.path("backends")); const vulkan_headers = b.dependency("Vulkan-Headers", .{}); - dear_imgui_vulkan_lib.addIncludePath(vulkan_headers.path("include")); + dear_imgui_vulkan_lib.root_module.addIncludePath(vulkan_headers.path("include")); dear_imgui_vulkan_lib.root_module.addCMacro("IMGUI_IMPL_VULKAN_NO_PROTOTYPES", "1"); // Assumed in generator dear_imgui_vulkan_lib.installHeadersDirectory(upstream.path("backends"), "", .{}); dear_imgui_vulkan_lib.installHeadersDirectory(vulkan_headers.path("include"), "", .{}); @@ -88,14 +88,14 @@ pub fn build(b: *std.Build) void { .optimize = optimize_external, }), }); - dear_imgui_sdl3_lib.linkLibrary(dear_imgui_lib); - dear_imgui_sdl3_lib.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_sdl3.cpp"), .flags = flags }); - dear_imgui_sdl3_lib.addCSourceFile(.{ .file = b.path("src/cached/dcimgui_impl_sdl3.cpp"), .flags = flags }); - dear_imgui_sdl3_lib.addIncludePath(b.path("src/include")); - dear_imgui_sdl3_lib.addIncludePath(upstream.path("")); - dear_imgui_sdl3_lib.addIncludePath(upstream.path("backends")); + dear_imgui_sdl3_lib.root_module.linkLibrary(dear_imgui_lib); + dear_imgui_sdl3_lib.root_module.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_sdl3.cpp"), .flags = flags }); + dear_imgui_sdl3_lib.root_module.addCSourceFile(.{ .file = b.path("src/cached/dcimgui_impl_sdl3.cpp"), .flags = flags }); + dear_imgui_sdl3_lib.root_module.addIncludePath(b.path("src/include")); + dear_imgui_sdl3_lib.root_module.addIncludePath(upstream.path("")); + dear_imgui_sdl3_lib.root_module.addIncludePath(upstream.path("backends")); const sdl = b.dependency("sdl", .{}); - dear_imgui_sdl3_lib.addIncludePath(sdl.path("include")); + dear_imgui_sdl3_lib.root_module.addIncludePath(sdl.path("include")); dear_imgui_sdl3_lib.installHeadersDirectory(upstream.path("backends"), "", .{}); b.installArtifact(dear_imgui_sdl3_lib); diff --git a/build.zig.zon b/build.zig.zon index a0fa2bd..a9a6345 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -2,7 +2,7 @@ .name = .dear_imgui, .fingerprint = 0xc1cc609af54040bd, .version = "1.0.0", - .minimum_zig_version = "0.16.0-dev.1484+d0ba6642b", + .minimum_zig_version = "0.16.0-dev.2193+fc517bd01", .dependencies = .{ .@"dear-imgui" = .{ .url = "https://github.com/ocornut/imgui/archive/refs/tags/v1.92.2b-docking.tar.gz", diff --git a/src/generate.zig b/src/generate.zig index 445a8a1..63f434f 100644 --- a/src/generate.zig +++ b/src/generate.zig @@ -29,7 +29,7 @@ const Symbols = struct { /// Returns true if there's already a public symbol with this name. pub fn put(self: *@This(), name: []const u8) !bool { - const trimmed = std.mem.trimRight(u8, name, "_"); + const trimmed = std.mem.trimEnd(u8, name, "_"); if (self.public.contains(trimmed)) return false; try self.front_buf.put(trimmed, {}); return true; @@ -174,7 +174,7 @@ const Header = struct { }; }; -pub fn main() !void { +pub fn main(init: std.process.Init.Minimal) !void { // Allocator and command line args var gpa = std.heap.GeneralPurposeAllocator(.{ .thread_safe = false, @@ -185,7 +185,7 @@ pub fn main() !void { var threaded_io: Io.Threaded = .init_single_threaded; const io = threaded_io.io(); - var args = try std.process.argsWithAllocator(allocator); + var args = try init.args.iterateAllocator(allocator); defer args.deinit(); std.debug.assert(args.skip()); const in_path = args.next().?; @@ -195,10 +195,10 @@ pub fn main() !void { const internal_path = args.next(); std.debug.assert(args.next() == null); - const out = try std.fs.cwd().createFile(out_path, .{}); - defer out.close(); + const out = try Dir.cwd().createFile(io, out_path, .{}); + defer out.close(io); var writer_buf: [4096]u8 = undefined; - var file_writer = out.writerStreaming(&writer_buf); + var file_writer = out.writerStreaming(io, &writer_buf); const writer = &file_writer.interface; // Write the prefix @@ -217,7 +217,7 @@ pub fn main() !void { defer symbols.deinit(); // Write the source - const main_source = try std.fs.cwd().readFileAlloc(in_path, allocator, .limited(max_size)); + const main_source = try Dir.cwd().readFileAlloc(io, in_path, allocator, .limited(max_size)); defer allocator.free(main_source); try writeSource( allocator, @@ -230,7 +230,7 @@ pub fn main() !void { // Write the internal source, if supplied if (internal_path) |p| { - const internal_source = try std.fs.cwd().readFileAlloc(p, allocator, .limited(max_size)); + const internal_source = try Dir.cwd().readFileAlloc(io, p, allocator, .limited(max_size)); defer allocator.free(internal_source); try writer.writeAll("pub const internal = struct {\n"); @@ -312,7 +312,7 @@ fn getDeclarations(allocator: Allocator, header: *const Header) !Declarations { for (header.structs) |ty| { if (skip(ty.conditionals)) continue; - const trimmed = std.mem.trimRight(u8, ty.name, "_"); + const trimmed = std.mem.trimEnd(u8, ty.name, "_"); var kind: DeclarationKind = .normal; if (ty.forward_declaration) { @@ -349,7 +349,7 @@ fn getDeclarations(allocator: Allocator, header: *const Header) !Declarations { for (header.enums) |e| { if (skip(e.conditionals)) continue; - const trimmed = std.mem.trimRight(u8, e.name, "_"); + const trimmed = std.mem.trimEnd(u8, e.name, "_"); try declarations.put(trimmed, .normal); }