prefect server in zig
at b9f9d0bf09d256e4ef235975eaed0408c422d431 83 lines 2.3 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 imports: []const std.Build.Module.Import = &.{ 39 .{ .name = "uuid", .module = uuid_dep.module("uuid") }, 40 .{ .name = "zqlite", .module = zqlite.module("zqlite") }, 41 .{ .name = "zap", .module = zap.module("zap") }, 42 .{ .name = "pg", .module = pg.module("pg") }, 43 .{ .name = "cron", .module = cron.module("cron") }, 44 .{ .name = "redis", .module = redis_dep.module("redis") }, 45 }; 46 47 const exe = b.addExecutable(.{ 48 .name = "prefect-server", 49 .root_module = b.createModule(.{ 50 .root_source_file = b.path("src/main.zig"), 51 .target = target, 52 .optimize = optimize, 53 .imports = imports, 54 }), 55 }); 56 exe.linkLibC(); 57 b.installArtifact(exe); 58 59 // run step 60 const run_cmd = b.addRunArtifact(exe); 61 run_cmd.step.dependOn(b.getInstallStep()); 62 if (b.args) |args| { 63 run_cmd.addArgs(args); 64 } 65 66 const run_step = b.step("run", "run the prefect server"); 67 run_step.dependOn(&run_cmd.step); 68 69 // tests 70 const unit_tests = b.addTest(.{ 71 .root_module = b.createModule(.{ 72 .root_source_file = b.path("src/main.zig"), 73 .target = target, 74 .optimize = optimize, 75 .imports = imports, 76 }), 77 }); 78 unit_tests.linkLibC(); 79 80 const run_unit_tests = b.addRunArtifact(unit_tests); 81 const test_step = b.step("test", "run unit tests"); 82 test_step.dependOn(&run_unit_tests.step); 83}