129 lines
3.6 KiB
Zig
129 lines
3.6 KiB
Zig
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 generateProgramSpecExe = b.addExecutable(.{
|
|
.name = "backlog-generate-spec",
|
|
.root_module = b.createModule(.{
|
|
.target = b.graph.host,
|
|
.optimize = .Debug,
|
|
.root_source_file = b.path("buildgen/generateProgramSpec.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(generateProgramSpecExe);
|
|
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");
|