Backlog/projects/build.zig

92 lines
2.9 KiB
Zig

const std = @import("std");
const Backlog = @import("Backlog");
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
var blbuild = Backlog.init(b, .{
.target = target,
.optimize = optimize,
.backlogRoot = "../",
});
const sampleGame = blbuild.program(.{
.name = "sampleGame",
.desc = "sdl3 project sample",
.root_source_file = b.path("sampleGame/main.zig"),
});
sampleGame.setModuleEnabled("imgui", true);
sampleGame.setModuleEnabled("audio", true);
sampleGame.setModuleEnabled("physics", true);
sampleGame.setModuleEnabled("ui", true);
sampleGame.setModuleEnabled("sys", true);
sampleGame.setModuleEnabled("net", true);
sampleGame.addExtraModule("gameExtras");
sampleGame.addExtraModule("videoplayer");
sampleGame.addExtraModule("doomplayer");
sampleGame.addExtraModule("bsp");
{ // extern game
const externGame = sampleGame.addDynamicModule("externGame", b.path("sampleGame/externGame/externGame.zig"));
_ = externGame.compileInstall();
}
sampleGame.setIconPath("icons/icon.ico");
const sampleGameExe = sampleGame.compileInstall();
_ = sampleGameExe;
// tools
const newProjectMaker = blbuild.program(.{
.name = "newProject",
.desc = "new project maker",
.root_source_file = b.path("tools/newProjectMaker.zig"),
});
newProjectMaker.setModuleEnabled("imgui", true);
newProjectMaker.setModuleEnabled("audio", false);
newProjectMaker.setModuleEnabled("sys", true);
newProjectMaker.setIconPath("icons/NewProject.ico");
_ = newProjectMaker.compileInstall();
const toolbox = blbuild.program(.{
.name = "toolbox",
.desc = "graphical toolbox for random stuff",
.root_source_file = b.path("tools/toolbox.zig"),
});
toolbox.setModuleEnabled("imgui", true);
toolbox.setModuleEnabled("audio", false);
toolbox.setModuleEnabled("sys", true);
toolbox.setModuleEnabled("net", false);
toolbox.addExtraModule("gameExtras");
const toolboxExe = toolbox.compileInstall();
// Add Windows icon resource for toolbox
if (target.result.os.tag == .windows) {
toolboxExe.addWin32ResourceFile(.{
.file = b.path("tools/toolbox.rc"),
.flags = &.{},
});
}
const headless = blbuild.program(.{
.name = "headless",
.desc = "headless program, core-only",
.root_source_file = b.path("headless/main.zig"),
});
std.debug.print("headless", .{});
headless.setModuleEnabled("assets", false);
headless.setModuleEnabled("platform", false);
headless.setModuleEnabled("audio", false);
headless.setModuleEnabled("net", false);
headless.setModuleEnabled("rend", false);
_ = headless.compileInstall();
blbuild.addDependencyInstalls(b, .ReleaseFast); //.ReleaseFast);
}