Each library domain (kernel, device, client, protocol, csv, xkeyboard-config) now owns a build.zig + build.zig.zon that wires and exports its modules, with a standalone `zig build test` per domain. The kernel package also exports abi (source stays in system/abi.zig) so every consumer names one module instance. The root build swaps its createModule calls for b.dependency(...).module(...) — no binary moves; the root is the pilot consumer (docs/build-packages-plan.md). Path dependencies deduplicate by resolved location, so the diamond (root -> device -> kernel, root -> kernel) yields a single instance of each module. Boot-image file list unchanged.
16 lines
604 B
Zig
16 lines
604 B
Zig
.{
|
|
.name = .device,
|
|
.version = "0.0.0",
|
|
.fingerprint = 0x92fb68eace23a4f, // Changing this has security and trust implications.
|
|
.minimum_zig_version = "0.16.0",
|
|
.dependencies = .{
|
|
// driver/block/usb/pci build on the kernel library's concern modules.
|
|
.kernel = .{ .path = "../kernel" },
|
|
// driver speaks device-manager-protocol; block/usb their transfer protocols.
|
|
.protocol = .{ .path = "../protocol" },
|
|
// device-registry parses /etc/devices.csv with the shared csv helpers.
|
|
.csv = .{ .path = "../csv" },
|
|
},
|
|
.paths = .{""},
|
|
}
|