Break out the impl to a lib

This will make it easier to make a C library.
This commit is contained in:
2025-04-13 16:50:52 -04:00
parent 8779b29149
commit 23f7ad8f94
5 changed files with 50 additions and 31 deletions

View File

@@ -15,6 +15,12 @@ pub fn build(b: *std.Build) void {
// set a preferred release mode, allowing the user to decide how to optimize.
const optimize = b.standardOptimizeOption(.{});
const lib_mod = b.createModule(.{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
});
// We will also create a module for our other entry point, 'main.zig'.
const exe_mod = b.createModule(.{
// `root_source_file` is the Zig "entry point" of the module. If a module
@@ -26,9 +32,19 @@ pub fn build(b: *std.Build) void {
.optimize = optimize,
});
exe_mod.addImport("network", b.dependency("network", .{}).module("network"));
lib_mod.addImport("network", b.dependency("network", .{}).module("network"));
exe_mod.addImport("zaprus", lib_mod);
exe_mod.addImport("clap", b.dependency("clap", .{}).module("clap"));
const lib = b.addLibrary(.{
.linkage = .static,
.name = "zaprus",
.root_module = lib_mod,
});
b.installArtifact(lib);
// This creates another `std.Build.Step.Compile`, but this one builds an executable
// rather than a static library.
const exe = b.addExecutable(.{