at main 2.0 kB view raw
1const std = @import("std"); 2 3pub fn build(b: *std.Build) void { 4 const target = b.standardTargetOptions(.{}); 5 const optimize = b.standardOptimizeOption(.{}); 6 7 const websocket = b.dependency("websocket", .{ 8 .target = target, 9 .optimize = optimize, 10 }); 11 12 const zqlite = b.dependency("zqlite", .{ 13 .target = target, 14 .optimize = optimize, 15 }); 16 17 const zat = b.dependency("zat", .{ 18 .target = target, 19 .optimize = optimize, 20 }); 21 22 const exe = b.addExecutable(.{ 23 .name = "zig-bsky-feed", 24 .root_module = b.createModule(.{ 25 .root_source_file = b.path("src/main.zig"), 26 .target = target, 27 .optimize = optimize, 28 .imports = &.{ 29 .{ .name = "websocket", .module = websocket.module("websocket") }, 30 .{ .name = "zqlite", .module = zqlite.module("zqlite") }, 31 .{ .name = "zat", .module = zat.module("zat") }, 32 }, 33 }), 34 }); 35 36 exe.linkLibC(); 37 38 b.installArtifact(exe); 39 40 const run_cmd = b.addRunArtifact(exe); 41 run_cmd.step.dependOn(b.getInstallStep()); 42 if (b.args) |args| { 43 run_cmd.addArgs(args); 44 } 45 46 const run_step = b.step("run", "Run the feed server"); 47 run_step.dependOn(&run_cmd.step); 48 49 // tests - use main.zig as root, tests in all imported modules run automatically 50 const tests = b.addTest(.{ 51 .root_module = b.createModule(.{ 52 .root_source_file = b.path("src/main.zig"), 53 .target = target, 54 .optimize = optimize, 55 .imports = &.{ 56 .{ .name = "websocket", .module = websocket.module("websocket") }, 57 .{ .name = "zqlite", .module = zqlite.module("zqlite") }, 58 .{ .name = "zat", .module = zat.module("zat") }, 59 }, 60 }), 61 }); 62 tests.linkLibC(); 63 64 const run_tests = b.addRunArtifact(tests); 65 const test_step = b.step("test", "Run unit tests"); 66 test_step.dependOn(&run_tests.step); 67}