diff --git a/build.zig b/build.zig index 9b2b6b5..db55d2e 100644 --- a/build.zig +++ b/build.zig @@ -19,6 +19,28 @@ pub fn build(b: *std.Build) void { const maxminddb_upstream = b.dependency("maxminddb", .{}); + // Build sunriset as a static library + const sunriset = b.addLibrary(.{ + .name = "sunriset", + .linkage = .static, + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + .link_libc = true, + }), + }); + + sunriset.addIncludePath(b.path("libs/sunriset")); + sunriset.addCSourceFiles(.{ + .root = b.path("libs/sunriset"), + .files = &.{ + "sunriset.c", + }, + .flags = &.{ "-D_DEFAULT_SOURCE", "-DSUNRISET_NO_MAIN" }, + }); + sunriset.linkLibC(); + sunriset.linkSystemLibrary("m"); + // Build phoon as a static library const phoon = b.addLibrary(.{ .name = "phoon", @@ -98,9 +120,11 @@ pub fn build(b: *std.Build) void { exe.root_module.addOptions("build_options", build_options); exe.root_module.addIncludePath(maxminddb_upstream.path("include")); exe.root_module.addIncludePath(b.path("libs/phoon_14Aug2014")); + exe.root_module.addIncludePath(b.path("libs/sunriset")); exe.root_module.addConfigHeader(maxminddb_config); exe.linkLibrary(maxminddb); exe.linkLibrary(phoon); + exe.linkLibrary(sunriset); exe.linkLibC(); b.installArtifact(exe); @@ -135,9 +159,11 @@ pub fn build(b: *std.Build) void { tests.root_module.addOptions("build_options", test_options); tests.root_module.addIncludePath(maxminddb_upstream.path("include")); tests.root_module.addIncludePath(b.path("libs/phoon_14Aug2014")); + tests.root_module.addIncludePath(b.path("libs/sunriset")); tests.root_module.addConfigHeader(maxminddb_config); tests.linkLibrary(maxminddb); tests.linkLibrary(phoon); + tests.linkLibrary(sunriset); tests.linkLibC(); const run_tests = b.addRunArtifact(tests); diff --git a/build.zig.zon b/build.zig.zon index 4bca8e2..5ed0912 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -19,6 +19,7 @@ .hash = "zeit-0.6.0-5I6bk36tAgATpSl9wjFmRPMqYN2Mn0JQHgIcRNcqDpJA", }, .phoon = .{ .path = "libs/phoon_14Aug2014" }, + .sunriset = .{ .path = "libs/sunriset" }, }, .fingerprint = 0x710c2b57e81aa678, .minimum_zig_version = "0.15.2",