const engineDepList = [_][]const u8{ "assets", "audio", "core", "net", "papyrus", "platform", "rend", "ui", "imgui", "physics", "sys", }; pub fn depList() []const []const u8 { return &engineDepList; } pub fn buildGenerators(b: *std.Build, opts: bh.Options) void { const target = opts.target; const optimize = opts.optimize; const static_build = opts.static_build; const fwdGeneratorExe = b.addExecutable(.{ .name = "backlog-generate-fwd", .root_module = b.createModule(.{ .target = b.graph.host, .optimize = .Debug, .root_source_file = b.path("buildgen/generateFwd.zig"), }), }); const generateExe = b.addExecutable(.{ .name = "backlog-apigen", .root_module = b.createModule(.{ .target = b.graph.host, .optimize = .Debug, .root_source_file = b.path("buildgen/generateApi.zig"), }), }); const generateShaders = b.addExecutable(.{ .name = "backlog-shaderEmbedGen", .root_module = b.createModule(.{ .target = b.graph.host, .optimize = .Debug, .root_source_file = b.path("buildgen/generateEmbeddedShaders.zig"), }), }); const generateRcExe = b.addExecutable(.{ .name = "backlog-generate-rc", .root_module = b.createModule(.{ .target = b.graph.host, .optimize = .Debug, .root_source_file = b.path("buildgen/generateRc.zig"), }), }); const generateLoadDynamicsExe = b.addExecutable(.{ .name = "backlog-generate-loadDynamics", .root_module = b.createModule(.{ .target = b.graph.host, .optimize = .Debug, .root_source_file = b.path("buildgen/generateLoadDynamics.zig"), }), }); b.installArtifact(fwdGeneratorExe); b.installArtifact(generateLoadDynamicsExe); b.installArtifact(generateExe); b.installArtifact(generateShaders); b.installArtifact(generateRcExe); { const loadDynamicsStub = b.addModule("loadDynamicsStub", .{ .target = target, .optimize = optimize, .root_source_file = b.path("engine/loadDynamicsStub.zig"), }); _ = loadDynamicsStub; const mod = b.addModule("Backlog", .{ .target = target, .optimize = optimize, .root_source_file = b.path("engine/backlog.zig"), }); for (depList()) |depName| { const dep = b.dependency( depName, .{ .target = target, .optimize = optimize, .static_build = static_build, }, ); const run = b.addRunArtifact(fwdGeneratorExe); const output = run.addOutputFileArg(b.fmt("{s}_fwd.zig", .{depName})); const modFwd = b.addModule(depName, .{ .target = target, .optimize = optimize, .root_source_file = output, }); mod.addImport(b.fmt("{s}", .{depName}), modFwd); modFwd.addImport("module", dep.module(depName)); } // link in large platform support functions... special case. { const dep = b.dependency("sdl3", .{ .target = target, .optimize = optimize, .static_build = static_build, }); const lib = dep.module("SDL3"); mod.addImport("sdl3_fwd", lib); } } } const std = @import("std"); const bh = @import("bh");