-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.zig
79 lines (74 loc) · 2.34 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const std = @import("std");
const tests = @import("tests/build.zig");
const tools = @import("tools/build.zig");
const emus = @import("emus/build.zig");
const Build = std.Build;
pub fn build(b: *Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const dep_sokol = b.dependency("sokol", .{
.target = target,
.optimize = optimize,
});
// internal module definitions
const mod_common = b.addModule("common", .{
.root_source_file = b.path("src/common/common.zig"),
.target = target,
.optimize = optimize,
});
const mod_chips = b.addModule("chips", .{
.root_source_file = b.path("src/chips/chips.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "common", .module = mod_common },
},
});
const mod_systems = b.addModule("systems", .{
.root_source_file = b.path("src/systems/systems.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "common", .module = mod_common },
.{ .name = "chips", .module = mod_chips },
},
});
const mod_host = b.addModule("host", .{
.root_source_file = b.path("src/host/host.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "sokol", .module = dep_sokol.module("sokol") },
.{ .name = "common", .module = mod_common },
},
});
// top-level modules
const mod_chipz = b.addModule("chipz", .{
.root_source_file = b.path("src/chipz.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "common", .module = mod_common },
.{ .name = "chips", .module = mod_chips },
.{ .name = "systems", .module = mod_systems },
.{ .name = "host", .module = mod_host },
},
});
tools.build(b, .{
.src_dir = "tools",
.target = target,
.optimize = optimize,
});
tests.build(b, .{
.src_dir = "tests",
.target = target,
.optimize = optimize,
.mod_chipz = mod_chipz,
});
emus.build(b, .{
.src_dir = "emus",
.target = target,
.optimize = optimize,
.mod_chipz = mod_chipz,
});
}