An asynchronous IO runtime
at main 1.7 kB view raw
1const std = @import("std"); 2 3const Module = std.Build.Module; 4const Target = std.Build.ResolvedTarget; 5const OptimizeMode = std.builtin.OptimizeMode; 6 7pub fn build(b: *std.Build) void { 8 const target = b.standardTargetOptions(.{}); 9 const optimize = b.standardOptimizeOption(.{}); 10 11 const ourio_mod = b.addModule("ourio", .{ 12 .root_source_file = b.path("src/ourio.zig"), 13 .target = target, 14 .optimize = optimize, 15 }); 16 17 const stda_mod = setupStdaMod(b, target, optimize, ourio_mod); 18 19 const ourio_tests = b.addTest(.{ .root_module = ourio_mod }); 20 const stda_tests = b.addTest(.{ .root_module = stda_mod }); 21 22 const run_ourio_tests = b.addRunArtifact(ourio_tests); 23 const run_stda_tests = b.addRunArtifact(stda_tests); 24 run_ourio_tests.skip_foreign_checks = true; 25 b.installArtifact(ourio_tests); 26 27 const test_step = b.step("test", "Run all unit tests"); 28 test_step.dependOn(&run_ourio_tests.step); 29 test_step.dependOn(&run_stda_tests.step); 30 31 const test_ourio_step = b.step("test-ourio", "Run ourio unit tests"); 32 test_ourio_step.dependOn(&run_ourio_tests.step); 33 34 const install_step = b.getInstallStep(); 35 install_step.dependOn(test_step); 36} 37 38pub fn setupStdaMod(b: *std.Build, target: Target, optimize: OptimizeMode, ourio: *Module) *Module { 39 const stda_mod = b.addModule("stda", .{ 40 .root_source_file = b.path("src/stda.zig"), 41 .target = target, 42 .optimize = optimize, 43 }); 44 stda_mod.addImport("ourio", ourio); 45 46 const tls_dep = b.dependency("tls", .{ .target = target, .optimize = optimize }); 47 stda_mod.addImport("tls", tls_dep.module("tls")); 48 49 return stda_mod; 50}