Microkernel thing OS experiment (Zig ⚡)
1const std = @import("std");
2const build_helpers = @import("build_helpers");
3
4pub fn build(b: *std.Build) void {
5 const arch = b.option(build_helpers.Architecture, "arch", "The target root_server architecture") orelse .amd64;
6
7 // set CPU features based on the architecture
8 const target = b.resolveTargetQuery(.{
9 .cpu_arch = arch.get(),
10 .os_tag = .freestanding,
11 .abi = .none,
12 });
13 const optimize = b.standardOptimizeOption(.{});
14
15 const main_mod = b.createModule(.{
16 .root_source_file = b.path("src/main.zig"),
17 .target = target,
18 .optimize = optimize,
19 });
20
21 const config = b.addOptions();
22 config.addOption(build_helpers.Architecture, "arch", arch);
23
24 const build_helpers_dep = b.dependency("build_helpers", .{});
25
26 main_mod.addImport("config", config.createModule());
27 main_mod.addImport("build_helpers", build_helpers_dep.module("build_helpers"));
28
29 const exe = b.addExecutable(.{
30 .name = "root_server",
31 .root_module = main_mod,
32 });
33
34 b.installArtifact(exe);
35}