diff options
author | polwex <polwex@sortug.com> | 2025-10-05 21:56:51 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-10-05 21:56:51 +0700 |
commit | fcedfddf00b3f994e4f4e40332ac7fc192c63244 (patch) | |
tree | 51d38e62c7bdfcc5f9a5e9435fe820c93cfc9a3d /vere/ext/lmdb/build.zig |
claude is gud
Diffstat (limited to 'vere/ext/lmdb/build.zig')
-rw-r--r-- | vere/ext/lmdb/build.zig | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/vere/ext/lmdb/build.zig b/vere/ext/lmdb/build.zig new file mode 100644 index 0000000..74651cc --- /dev/null +++ b/vere/ext/lmdb/build.zig @@ -0,0 +1,56 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lmdb_c = b.dependency("lmdb", .{ + .target = target, + .optimize = optimize, + }); + + const lmdb = b.addStaticLibrary(.{ + .name = "lmdb", + .target = target, + .optimize = optimize, + }); + + lmdb.linkLibC(); + + lmdb.addIncludePath(lmdb_c.path("libraries/liblmdb")); + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + + try flags.appendSlice(&.{ + "-fno-sanitize=all", + "-pthread", + "-O2", + "-g", + "-W", + "-Wall", + "-Wno-unused-parameter", + "-Wbad-function-cast", + "-Wuninitialized", + }); + + if (target.result.os.tag.isDarwin()) { + try flags.appendSlice(&.{"-DURBIT_RUNTIME_OS_DARWIN"}); + } + + lmdb.addCSourceFiles(.{ + .root = lmdb_c.path("libraries/liblmdb"), + .files = &.{"midl.c"}, + .flags = flags.items, + }); + + lmdb.addCSourceFiles(.{ + .root = b.path("patches/lmdb-0.9.29"), + .files = &.{"mdb.c"}, + .flags = flags.items, + }); + + lmdb.installHeader(lmdb_c.path("libraries/liblmdb/lmdb.h"), "lmdb/lmdb.h"); + + b.installArtifact(lmdb); +} |