bsky feeds about music
music-atmosphere-feed.plyr.fm/
bsky
feed
zig
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}