build.zig

1.3 KB · raw

1const std = @import("std");23pub fn build(b: *std.Build) void {4    // When built by Kepr Builds, KEPR_TARGET carries the cross-compile triple5    // so the same command works across all platforms without shell expansion.6    const target = if (std.c.getenv("KEPR_TARGET")) |t_ptr|7        b.resolveTargetQuery(std.Target.Query.parse(8            .{ .arch_os_abi = std.mem.span(t_ptr) },9        ) catch std.Target.Query{})10    else11        b.standardTargetOptions(.{});12    const optimize = b.standardOptimizeOption(.{});1314    const exe = b.addExecutable(.{15        .name = "nina",16        .root_module = b.createModule(.{17            .root_source_file = b.path("src/main.zig"),18            .target = target,19            .optimize = optimize,20        }),21    });22    b.installArtifact(exe);2324    const run_cmd = b.addRunArtifact(exe);25    run_cmd.step.dependOn(b.getInstallStep());26    if (b.args) |args| run_cmd.addArgs(args);27    const run_step = b.step("run", "Run nina");28    run_step.dependOn(&run_cmd.step);2930    const tests = b.addTest(.{31        .root_module = b.createModule(.{32            .root_source_file = b.path("src/main.zig"),33            .target = target,34            .optimize = optimize,35        }),36    });37    const test_step = b.step("test", "Run unit tests");38    test_step.dependOn(&b.addRunArtifact(tests).step);39}