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}