Immediate mode renderer for libvaxis
1const std = @import("std");
2
3pub fn build(b: *std.Build) void {
4 const target = b.standardTargetOptions(.{});
5 const optimize = b.standardOptimizeOption(.{});
6
7 // Library and executable.
8
9 const mod = b.addModule("vxim", .{
10 .root_source_file = b.path("src/root.zig"),
11 .target = target,
12 });
13
14 const exe = b.addExecutable(.{
15 .name = "demo",
16 .root_module = b.createModule(.{
17 .root_source_file = b.path("src/demo.zig"),
18 .target = target,
19 .optimize = optimize,
20 .imports = &.{
21 .{ .name = "vxim", .module = mod },
22 },
23 }),
24 });
25
26 b.installArtifact(exe);
27
28 // Dependencies.
29
30 const vaxis = b.dependency("vaxis", .{
31 .target = target,
32 .optimize = optimize,
33 });
34
35 exe.root_module.addImport("vaxis", vaxis.module("vaxis"));
36 mod.addImport("vaxis", vaxis.module("vaxis"));
37
38 // Run step.
39
40 const run_step = b.step("run", "Run the app");
41 const run_cmd = b.addRunArtifact(exe);
42
43 run_step.dependOn(&run_cmd.step);
44 run_cmd.step.dependOn(b.getInstallStep());
45
46 if (b.args) |args| {
47 run_cmd.addArgs(args);
48 }
49
50 // Tests.
51
52 const mod_tests = b.addTest(.{
53 .root_module = mod,
54 });
55 const run_mod_tests = b.addRunArtifact(mod_tests);
56
57 const exe_tests = b.addTest(.{
58 .root_module = exe.root_module,
59 });
60 const run_exe_tests = b.addRunArtifact(exe_tests);
61
62 const test_step = b.step("test", "Run tests");
63 test_step.dependOn(&run_mod_tests.step);
64 test_step.dependOn(&run_exe_tests.step);
65}