kernel-zig/build.zig

32 lines
1.1 KiB
Zig

const Builder = @import("std").build.Builder;
const builtin = @import("builtin");
const std = @import("std");
pub fn build(b: *Builder) void {
const kernel = b.addExecutable("kernel", "src/main.zig");
kernel.addPackagePath("kernel", "src/index.zig");
kernel.addPackagePath("x86", "src/arch/x86/index.zig");
kernel.setOutputDir("build");
kernel.addAssemblyFile("src/arch/x86/start.s");
kernel.addAssemblyFile("src/arch/x86/gdt.s");
kernel.addAssemblyFile("src/arch/x86/isr.s");
kernel.addAssemblyFile("src/arch/x86/paging.s");
kernel.addAssemblyFile("src/arch/x86/switch_tasks.s");
kernel.setBuildMode(b.standardReleaseOptions());
kernel.setTheTarget(builtin.Target{
.Cross = std.Target.Cross{
.arch = builtin.Target.Arch.i386,
.os = builtin.Target.Os.freestanding,
.abi = builtin.Target.Abi.none,
.cpu_features = builtin.Target.CpuFeatures.initFromCpu(
builtin.Arch.i386,
&builtin.Target.x86.cpu._i686,
),
},
});
kernel.setLinkerScriptPath("src/arch/x86/linker.ld");
b.default_step.dependOn(&kernel.step);
}