search for standard sites
pub-search.waow.tech
search
zig
blog
atproto
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 zql = b.dependency("zql", .{
13 .target = target,
14 .optimize = optimize,
15 });
16
17 const zat = b.dependency("zat", .{
18 .target = target,
19 .optimize = optimize,
20 });
21
22 const zqlite = b.dependency("zqlite", .{
23 .target = target,
24 .optimize = optimize,
25 .sqlite3 = &[_][]const u8{ "-std=c99", "-DSQLITE_ENABLE_FTS5" },
26 });
27
28 const logfire = b.dependency("logfire", .{
29 .target = target,
30 .optimize = optimize,
31 });
32
33 const exe = b.addExecutable(.{
34 .name = "leaflet-search",
35 .root_module = b.createModule(.{
36 .root_source_file = b.path("src/main.zig"),
37 .target = target,
38 .optimize = optimize,
39 .imports = &.{
40 .{ .name = "websocket", .module = websocket.module("websocket") },
41 .{ .name = "zql", .module = zql.module("zql") },
42 .{ .name = "zat", .module = zat.module("zat") },
43 .{ .name = "zqlite", .module = zqlite.module("zqlite") },
44 .{ .name = "logfire", .module = logfire.module("logfire") },
45 },
46 }),
47 });
48
49 b.installArtifact(exe);
50
51 const run_cmd = b.addRunArtifact(exe);
52 run_cmd.step.dependOn(b.getInstallStep());
53 if (b.args) |args| {
54 run_cmd.addArgs(args);
55 }
56
57 const run_step = b.step("run", "Run the server");
58 run_step.dependOn(&run_cmd.step);
59
60 // test step
61 const test_step = b.step("test", "Run unit tests");
62
63 const test_files = [_][]const u8{
64 "src/search.zig",
65 "src/ingest/extractor.zig",
66 };
67
68 for (test_files) |file| {
69 const unit_tests = b.addTest(.{
70 .root_module = b.createModule(.{
71 .root_source_file = b.path(file),
72 .target = target,
73 .optimize = optimize,
74 .imports = &.{
75 .{ .name = "zat", .module = zat.module("zat") },
76 },
77 }),
78 });
79 const run_tests = b.addRunArtifact(unit_tests);
80 test_step.dependOn(&run_tests.step);
81 }
82}