Add build.zig
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
const std = @import("std");
|
||||
|
||||
const include_paths: []const []const u8 = &.{
|
||||
".",
|
||||
"src",
|
||||
"include",
|
||||
"quakey/include",
|
||||
};
|
||||
|
||||
const files: []const []const u8 = &.{
|
||||
|
||||
"src/chunk_store.c",
|
||||
"src/client.c",
|
||||
"src/client_table.c",
|
||||
"src/http_proxy.c",
|
||||
"src/invariant_checker.c",
|
||||
"src/log.c",
|
||||
"src/main.c",
|
||||
"src/metadata.c",
|
||||
"src/random_client.c",
|
||||
"src/server.c",
|
||||
|
||||
"lib/basic.c",
|
||||
"lib/byte_queue.c",
|
||||
"lib/file_system.c",
|
||||
"lib/http_parse.c",
|
||||
"lib/http_server.c",
|
||||
"lib/message.c",
|
||||
"lib/tcp.c",
|
||||
"lib/tls_openssl.c",
|
||||
"lib/tls_schannel.c",
|
||||
|
||||
"quakey/src/mockfs.c",
|
||||
"quakey/src/quakey.c",
|
||||
};
|
||||
|
||||
fn buildTarget(b: *std.Build, name: []const u8, macros: []const []const u8, flags: []const []const u8) void {
|
||||
const exe = b.addExecutable(.{
|
||||
.name = name,
|
||||
.root_module = b.createModule(.{
|
||||
.target = b.graph.host,
|
||||
}),
|
||||
});
|
||||
for (macros) |m| {
|
||||
exe.root_module.addCMacro(m, "");
|
||||
}
|
||||
for (include_paths) |p| {
|
||||
exe.root_module.addIncludePath(b.path(p));
|
||||
}
|
||||
exe.root_module.addCSourceFiles(.{ .files = files, .flags = flags });
|
||||
exe.root_module.link_libc = true;
|
||||
|
||||
b.installArtifact(exe);
|
||||
}
|
||||
|
||||
pub fn build(b: *std.Build) !void {
|
||||
|
||||
// Server
|
||||
buildTarget(b,
|
||||
"toasty",
|
||||
&.{ "MAIN_SERVER" },
|
||||
&.{ "-Wall", "-Wextra", "-ggdb", "-O0" },
|
||||
);
|
||||
|
||||
// Client
|
||||
buildTarget(b,
|
||||
"toasty_random_client",
|
||||
&.{ "MAIN_CLIENT" },
|
||||
&.{ "-Wall", "-Wextra", "-ggdb", "-O0" },
|
||||
);
|
||||
|
||||
// Proxy
|
||||
buildTarget(b,
|
||||
"toasty_proxy",
|
||||
&.{ "MAIN_HTTP_PROXY" },
|
||||
&.{ "-Wall", "-Wextra", "-ggdb", "-O0" },
|
||||
);
|
||||
|
||||
// Simulation
|
||||
buildTarget(b,
|
||||
"toasty_simulation",
|
||||
&.{ "MAIN_SIMULATION", "FAULT_INJECTION" },
|
||||
&.{ "-Wall", "-Wextra", "-ggdb", "-O0" },
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user