pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
-
const optimize = b.standardOptimizeOption(.{});
const exe = b.addExecutable(.{
- .name = "lmdb",
- // In this case the main source file is merely a path, however, in more
- // complicated build scripts, this could be a generated file.
- .root_source_file = .{ .cwd_relative = "src/main.zig" },
+ .name = "chirp",
+ .root_source_file = b.path("src/main.zig"),
.target = target,
.optimize = optimize,
});
- const lmdb_mod = b.createModule(.{
- .root_source_file = .{ .cwd_relative = "../ziglmdb/src/lmdb.zig" },
+ // other modules
+ exe.root_module.omit_frame_pointer = false;
+
+ const exe_check = b.addExecutable(.{
+ .name = "chirp",
+ .root_source_file = b.path("src/main.zig"),
+ .target = target,
+ .optimize = optimize,
});
- lmdb_mod.addIncludePath(.{ .cwd_relative = "./lmdb/libraries/liblmdb" });
- lmdb_mod.addCSourceFiles(.{ .files = &.{
- "./lmdb/libraries/liblmdb/midl.c",
- "./lmdb/libraries/liblmdb/mdb.c",
- } });
- exe.root_module.addImport("lmdb", lmdb_mod);
+ const check = b.step("check", "Check if chirp compiles");
+ check.dependOn(&exe_check.step);
+
+ const lmdb = b.dependency("lmdb", .{ .target = target, .optimize = optimize });
+ var lmdb_mod = lmdb.module("lmdb");
+ lmdb_mod.omit_frame_pointer = false;
+ var db_mod = lmdb.module("db");
+ db_mod.omit_frame_pointer = false;
+
+ const http = b.dependency("http", .{ .target = target, .optimize = optimize });
+ const http_mod = http.module("http");
+ // lmdb_mod.omit_frame_pointer = false;
+
+ exe.root_module.addImport("http", http_mod);
+ exe.root_module.addImport("lmdb", lmdb_mod);
+ exe.root_module.addImport("db", db_mod);
exe.linkLibC();
+ exe_check.root_module.addImport("http", http_mod);
+ exe_check.root_module.addImport("lmdb", lmdb_mod);
+ exe_check.root_module.addImport("db", db_mod);
+ exe_check.linkLibC();
+
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
-
run_cmd.step.dependOn(b.getInstallStep());
-
- if (b.args) |args| {
- run_cmd.addArgs(args);
- }
-
const run_step = b.step("run", "Run the app");
run_step.dependOn(&run_cmd.step);
}