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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
const std = @import("std");
pub const version = "1.0.0";
pub const kernel_location = "/system/akiba/mirai.kernel";
pub const font_location = "/system/akiba/fonts/akiba.psf";
pub fn build(b: *std.Build) void {
const hikari_target = b.resolveTargetQuery(.{
.cpu_arch = .x86_64,
.os_tag = .uefi,
.abi = .msvc,
});
const hikari_module = b.createModule(.{
.root_source_file = b.path("hikari/hikari.zig"),
.target = hikari_target,
.optimize = .ReleaseSafe,
});
const hikari = b.addExecutable(.{
.name = "hikari",
.root_module = hikari_module,
});
const hikari_copy = b.addInstallFile(
hikari.getEmittedBin(),
"EFI/BOOT/BOOTX64.EFI",
);
hikari_copy.step.dependOn(&hikari.step);
const hikari_step = b.step("hikari", "Build Hikari bootloader");
hikari_step.dependOn(&hikari_copy.step);
const mirai_target = b.resolveTargetQuery(.{
.cpu_arch = .x86_64,
.os_tag = .freestanding,
.abi = .none,
});
const mirai_module = b.createModule(.{
.root_source_file = b.path("mirai/mirai.zig"),
.target = mirai_target,
.optimize = .ReleaseSafe,
.code_model = .kernel,
});
const mirai = b.addExecutable(.{
.name = "mirai",
.root_module = mirai_module,
});
mirai.entry = .{ .symbol_name = "mirai_entry" };
mirai.setLinkerScript(b.path("linker/mirai.linker"));
const mirai_copy = b.addInstallFile(
mirai.getEmittedBin(),
"system/akiba/mirai.kernel",
);
mirai_copy.step.dependOn(&mirai.step);
const mirai_step = b.step("mirai", "Build Mirai kernel");
mirai_step.dependOn(&mirai_copy.step);
const native_target = b.standardTargetOptions(.{});
const native_optimize = b.standardOptimizeOption(.{});
const mkafsdisk_module = b.createModule(.{
.root_source_file = b.path("toolchain/mkafsdisk/main.zig"),
.target = native_target,
.optimize = native_optimize,
});
const mkafsdisk = b.addExecutable(.{
.name = "mkafsdisk",
.root_module = mkafsdisk_module,
});
const mkafsdisk_install = b.addInstallArtifact(mkafsdisk, .{});
const mkafsdisk_step = b.step("mkafsdisk", "Build mkafsdisk tool");
mkafsdisk_step.dependOn(&mkafsdisk_install.step);
const all_step = b.step("all", "Build everything");
all_step.dependOn(&hikari_copy.step);
all_step.dependOn(&mirai_copy.step);
all_step.dependOn(&mkafsdisk_install.step);
b.default_step = all_step;
const clean_step = b.step("clean", "Remove build artifacts");
clean_step.dependOn(&b.addRemoveDirTree(b.path("zig-out")).step);
clean_step.dependOn(&b.addRemoveDirTree(b.path(".zig-cache")).step);
}
|