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