summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-14 13:55:41 -0300
committerGabriel Schneider <[email protected]>2026-09-15 17:24:42 -0300
commit95681ff7017b8a9e4c8f9fa6a7371d1233432f2f (patch)
tree34787d6bb62944cc778624685387db7376ccf71b /build.zig
parent682e237df7e8b22f820d14a4adee58e6e2f84268 (diff)
downloadpardes-95681ff7017b8a9e4c8f9fa6a7371d1233432f2f.tar.gz
pardes-95681ff7017b8a9e4c8f9fa6a7371d1233432f2f.zip
9p: use cloud9 protocol sessions and transports
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index 1e8547f4..b72d8734 100644
--- a/build.zig
+++ b/build.zig
@@ -230,6 +230,8 @@ pub fn build(b: *std.Build) void {
core_mods_len += 1;
};
const core_mods = core_mods_buf[0..core_mods_len];
+ const cloud9 = b.dependency("cloud9", .{ .target = target, .optimize = optimize }).module("cloud9");
+ for (core_mods) |mod| mod.addImport("cloud9", cloud9);
const core_shells = core_shells_buf[0..core_mods_len];
for (core_mods) |mod| mod.addOptions("9p_options", ninep_options);
const quic_test_step = b.step("quic-test", "test optional QUIC transport (-Dquic=true)");
@@ -253,6 +255,7 @@ pub fn build(b: *std.Build) void {
.link_libc = true,
});
quic_module.addImport("openssl", openssl);
+ quic_module.addImport("cloud9", cloud9);
const tests = b.addTest(.{ .root_module = quic_module, .filters = test_filters });
if (test_nonce) |nonce| tests.root_module.addImport("test_rebuild_nonce", nonce);
test_build.dependOn(&tests.step);
@@ -868,6 +871,7 @@ pub fn build(b: *std.Build) void {
.target = target,
.optimize = optimize,
.ghostty_vt = ghostty_vt_for_snap,
+ .cloud9 = cloud9,
});
const image_harness = b.addExecutable(.{
@@ -1203,6 +1207,28 @@ pub fn build(b: *std.Build) void {
pane_test_step.dependOn(&run_pane_tests.step);
if (testMatch(b, unit_profile, test_filters, pane_test_step)) |check| check.addArtifactArg(pane_tests);
+ // Keep native transport integration reachable even when the core's
+ // anonymous test-import block is filtered out by Zig.
+ const ninep_io_module = b.createModule(.{
+ .root_source_file = b.path("src/9p_io.zig"),
+ .target = target,
+ .optimize = optimize,
+ .link_libc = true,
+ });
+ ninep_io_module.link_objects.appendSlice(b.allocator, core_module.link_objects.items) catch @panic("OOM");
+ var ninep_imports = core_module.import_table.iterator();
+ while (ninep_imports.next()) |entry| ninep_io_module.addImport(entry.key_ptr.*, entry.value_ptr.*);
+ if (enable_quic) {
+ ninep_io_module.linkSystemLibrary("ssl", .{});
+ ninep_io_module.linkSystemLibrary("crypto", .{});
+ }
+ const ninep_io_tests = b.addTest(.{
+ .root_module = ninep_io_module,
+ .filters = &.{ "Unix TCP", "one fetch", "expired sessions" },
+ });
+ b.step("9p-io-test", "run native 9P transport and client integration tests")
+ .dependOn(&b.addRunArtifact(ninep_io_tests).step);
+
const protocol_step = b.step("9p-test", "run freestanding 9P protocol tests");
const history_step = b.step("history-test", "test historical comparisons and regression gates");
const protocol_match = testMatch(b, unit_profile, test_filters, protocol_step);
@@ -1224,6 +1250,7 @@ pub fn build(b: *std.Build) void {
}),
.filters = test_filters,
});
+ tests.root_module.addImport("cloud9", cloud9);
if (test_nonce) |nonce| tests.root_module.addImport("test_rebuild_nonce", nonce);
test_build.dependOn(&tests.step);
const run_tests = b.addRunArtifact(tests);