const std = @import("std"); const Sdk = @import("lib/SDL.zig/build.zig"); pub fn build(b: *std.Build) void { // Standard target options allows the person running `zig build` to choose // what target to build for. Here we do not override the defaults, which // means any target is allowed, and the default is native. Other options // for restricting supported target set are available. const target = b.standardTargetOptions(.{}); // Standard release options allow the person running `zig build` to select // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. const optimize = b.standardOptimizeOption(.{}); const exe = b.addExecutable(.{ .name = "usg", .root_source_file = .{ .path = "src/main.zig" }, .target = target, .optimize = optimize, }); const sdk = Sdk.init(b, null); sdk.link(exe, .dynamic); exe.linkSystemLibrary("sdl2_ttf"); exe.linkSystemLibrary("sdl2_image"); exe.linkSystemLibrary("gl"); exe.linkSystemLibrary("epoxy"); const relative = std.Build.FileSource.relative; exe.addModule("zgl", b.createModule(.{ .source_file = relative("lib/zgl/zgl.zig") })); exe.addModule("zlm", b.createModule(.{ .source_file = relative("lib/zlm/zlm.zig") })); exe.addModule("sdl2", sdk.getWrapperModule()); b.installArtifact(exe); const run_cmd = b.addRunArtifact(exe); run_cmd.step.dependOn(b.getInstallStep()); // Allow the user to pass arguments to the applecation if (b.args) |args| { run_cmd.addArgs(args); } // Create the build step const run_step = b.step("run", "Run the app"); run_step.dependOn(&run_cmd.step); }