-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.zig
41 lines (35 loc) · 1.15 KB
/
build.zig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const std = @import("std");
const builtin = @import("builtin");
const utils = @import("utils.zig");
const emulator = "vbam";
pub fn build(b: *std.build.Builder) !void {
b.build_root = try utils.root(b.build_root);
try utils.ensure_tar(
b.allocator,
b.build_root,
"gbdk",
"https://github.com/gbdk-2020/gbdk-2020/releases/download/4.0.6/gbdk-linux64.tar.gz",
);
const folder = try std.fs.openDirAbsolute(b.build_root, .{});
folder.makeDir("zig-out") catch {};
const obj = b.addSystemCommand(&.{
"../gbdk/bin/lcc",
"-Wa-l",
"-DUSE_SFR_FOR_REG",
"-c",
"-o",
"zig-gb.o",
"../src/main.c",
});
obj.cwd = "zig-out";
const gb = b.addSystemCommand(&.{
"../gbdk/bin/lcc", "-Wa-l", "-DUSE_SFR_FOR_REG", "-o", "zig-gb.gb", "zig-gb.o",
});
gb.cwd = "zig-out";
b.default_step.dependOn(&gb.step);
gb.step.dependOn(&obj.step);
const run_step = b.step("run", "Run in Visual Boy Advance");
const vbam = b.addSystemCommand(&.{ emulator, "-F", "zig-out/zig-gb.gb" });
run_step.dependOn(&gb.step);
run_step.dependOn(&vbam.step);
}