A SpaceTraders Agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at b4302ee545e0ee3fbdaf01d4a8bdcc94fb0a695f 119 lines 3.8 kB view raw
1const std = @import("std"); 2const Build = std.Build; 3 4pub fn build(b: *Build) void { 5 const target = b.standardTargetOptions(.{}); 6 const optimize = b.standardOptimizeOption(.{}); 7 8 const known_folders = b.dependency("known_folders", .{}).module("known-folders"); 9 const pretty = b.dependency("pretty", .{}).module("pretty"); 10 const zqlite = b.dependency("zqlite", .{}).module("zqlite"); 11 12 const sqlite3 = b.dependency("sqlite3", .{}); 13 14 const mod_sqlite3 = b.createModule(.{ 15 .target = target, 16 .optimize = optimize, 17 .link_libc = true, 18 }); 19 mod_sqlite3.addIncludePath(sqlite3.path("")); 20 mod_sqlite3.addCSourceFile(.{ 21 .file = sqlite3.path("sqlite3.c"), 22 .flags = &[_][]const u8{ 23 "-DSQLITE_DQS=0", 24 "-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1", 25 "-DSQLITE_USE_ALLOCA=1", 26 "-DSQLITE_THREADSAFE=1", 27 "-DSQLITE_TEMP_STORE=3", 28 "-DSQLITE_ENABLE_API_ARMOR=1", 29 "-DSQLITE_ENABLE_UNLOCK_NOTIFY", 30 "-DSQLITE_DEFAULT_FILE_PERMISSIONS=0600", 31 "-DSQLITE_OMIT_DECLTYPE=1", 32 "-DSQLITE_OMIT_DEPRECATED=1", 33 "-DSQLITE_OMIT_LOAD_EXTENSION=1", 34 "-DSQLITE_OMIT_PROGRESS_CALLBACK=1", 35 "-DSQLITE_OMIT_SHARED_CACHE", 36 "-DSQLITE_OMIT_TRACE=1", 37 "-DSQLITE_OMIT_UTF16=1", 38 "-DHAVE_USLEEP=0", 39 }, 40 }); 41 42 const libsqlite = b.addLibrary(.{ 43 .name = "sqlite3", 44 .linkage = .static, 45 .root_module = mod_sqlite3, 46 }); 47 48 const meta = b.createModule(.{ 49 .root_source_file = b.path("src/meta/root.zig"), 50 .target = target, 51 .optimize = optimize, 52 }); 53 54 const st = b.addModule("st", .{ 55 .root_source_file = b.path("src/st/root.zig"), 56 .target = target, 57 .optimize = optimize, 58 .imports = &.{ 59 .{ .name = "meta", .module = meta }, 60 .{ .name = "pretty", .module = pretty }, 61 }, 62 }); 63 64 const agent = b.addModule("agent", .{ 65 .root_source_file = b.path("src/agent/root.zig"), 66 .target = target, 67 .optimize = optimize, 68 .imports = &.{ 69 .{ .name = "known-folders", .module = known_folders }, 70 .{ .name = "zqlite", .module = zqlite }, 71 // Modules 72 .{ .name = "st", .module = st }, 73 .{ .name = "meta", .module = meta }, 74 }, 75 }); 76 agent.linkLibrary(libsqlite); 77 78 const space = b.createModule(.{ 79 .root_source_file = b.path("src/main.zig"), 80 .target = target, 81 .optimize = optimize, 82 .imports = &.{ 83 .{ .name = "known-folders", .module = known_folders }, 84 // Modules 85 .{ .name = "st", .module = st }, 86 .{ .name = "agent", .module = agent }, 87 .{ .name = "meta", .module = meta }, 88 .{ .name = "pretty", .module = pretty }, 89 }, 90 }); 91 92 const exe = b.addExecutable(.{ 93 .root_module = space, 94 .name = "space", 95 }); 96 b.installArtifact(exe); 97 98 const run_cmd = b.addRunArtifact(exe); 99 run_cmd.step.dependOn(b.getInstallStep()); 100 101 if (b.args) |args| run_cmd.addArgs(args); 102 103 const run_step = b.step("run", "Run the app"); 104 run_step.dependOn(&run_cmd.step); 105 106 const test_step = b.step("test", "Run tests"); 107 addTest(b, test_step, "meta", meta); 108 addTest(b, test_step, "st", st); 109 addTest(b, test_step, "agent", agent); 110} 111 112fn addTest(b: *Build, step: *Build.Step, name: []const u8, root_module: *Build.Module) void { 113 const t = b.addTest(.{ 114 .name = name, 115 .root_module = root_module, 116 }); 117 const run_test = b.addRunArtifact(t); 118 step.dependOn(&run_test.step); 119}