treesummaryrefslogcommitdiff
path: root/build.zig
blob: 0525e47fbb7c2a56b573afbb83a2291fa39e6a3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const std = @import("std");

pub fn build(b: *std.Build) void {
    const target = b.standardTargetOptions(.{});

    const optimize = b.standardOptimizeOption(.{});

    const mod = b.addModule("lmdb", .{
        .root_source_file = .{ .src_path = .{ .owner = b, .sub_path = "src/lmdb.zig" } },
        // .root_source_file = .{ .cwd_relative = "src/lmdb.zig" },
        .target = target,
        .optimize = optimize,
    });

    mod.addIncludePath(.{ .src_path = .{ .owner = b, .sub_path = "lmdb/libraries/liblmdb" } });

    mod.addCSourceFiles(.{ .files = &.{
        "./lmdb/libraries/liblmdb/midl.c",
        "./lmdb/libraries/liblmdb/mdb.c",
    } });

    const unit_tests = b.addTest(.{
        .root_source_file = .{ .cwd_relative = "src/lmdb.zig" },
        .target = target,
        .optimize = optimize,
    });

    unit_tests.addIncludePath(.{ .src_path = .{ .owner = b, .sub_path = "lmdb/libraries/liblmdb" } });
    unit_tests.addCSourceFiles(.{ .files = &.{
        "./lmdb/libraries/liblmdb/midl.c",
        "./lmdb/libraries/liblmdb/mdb.c",
    } });
    unit_tests.linkLibC();

    const test_bin = b.addInstallBinFile(unit_tests.getEmittedBin(), "./lmdb_test");

    const run_unit_tests = b.addRunArtifact(unit_tests);

    const test_step = b.step("test", "Run unit tests");
    test_step.dependOn(&run_unit_tests.step);
    test_step.dependOn(&unit_tests.step);
    test_step.dependOn(&test_bin.step);
}