prefect server in zig
at main 89 lines 2.5 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 uuid_dep = b.dependency("uuid", .{ 8 .target = target, 9 .optimize = optimize, 10 }); 11 12 const zqlite = b.dependency("zqlite", .{ 13 .target = target, 14 .optimize = optimize, 15 }); 16 17 const zap = b.dependency("zap", .{ 18 .target = target, 19 .optimize = optimize, 20 .openssl = false, 21 }); 22 23 const pg = b.dependency("pg", .{ 24 .target = target, 25 .optimize = optimize, 26 }); 27 28 const cron = b.dependency("cron", .{ 29 .target = target, 30 .optimize = optimize, 31 }); 32 33 const redis_dep = b.dependency("redis", .{ 34 .target = target, 35 .optimize = optimize, 36 }); 37 38 const logfire = b.dependency("logfire", .{ 39 .target = target, 40 .optimize = optimize, 41 }); 42 43 const imports: []const std.Build.Module.Import = &.{ 44 .{ .name = "uuid", .module = uuid_dep.module("uuid") }, 45 .{ .name = "zqlite", .module = zqlite.module("zqlite") }, 46 .{ .name = "zap", .module = zap.module("zap") }, 47 .{ .name = "pg", .module = pg.module("pg") }, 48 .{ .name = "cron", .module = cron.module("cron") }, 49 .{ .name = "redis", .module = redis_dep.module("redis") }, 50 .{ .name = "logfire", .module = logfire.module("logfire") }, 51 }; 52 53 const exe = b.addExecutable(.{ 54 .name = "prefect-server", 55 .root_module = b.createModule(.{ 56 .root_source_file = b.path("src/main.zig"), 57 .target = target, 58 .optimize = optimize, 59 .imports = imports, 60 }), 61 }); 62 exe.linkLibC(); 63 b.installArtifact(exe); 64 65 // run step 66 const run_cmd = b.addRunArtifact(exe); 67 run_cmd.step.dependOn(b.getInstallStep()); 68 if (b.args) |args| { 69 run_cmd.addArgs(args); 70 } 71 72 const run_step = b.step("run", "run the prefect server"); 73 run_step.dependOn(&run_cmd.step); 74 75 // tests 76 const unit_tests = b.addTest(.{ 77 .root_module = b.createModule(.{ 78 .root_source_file = b.path("src/main.zig"), 79 .target = target, 80 .optimize = optimize, 81 .imports = imports, 82 }), 83 }); 84 unit_tests.linkLibC(); 85 86 const run_unit_tests = b.addRunArtifact(unit_tests); 87 const test_step = b.step("test", "run unit tests"); 88 test_step.dependOn(&run_unit_tests.step); 89}