Backlog/lib/miniaudio/build.zig

42 lines
1.4 KiB
Zig

const std = @import("std");
const bh = @import("bh");
pub fn build(b: *std.Build) void {
const opts = bh.declareOptions(b);
const miniaudio_c = b.addLibrary(.{
.name = "miniaudio_c",
.linkage = if (opts.static_build) .static else .dynamic,
.root_module = b.createModule(.{
.target = opts.target,
.optimize = opts.optimize,
.link_libc = true,
}),
});
b.installArtifact(miniaudio_c);
miniaudio_c.addCSourceFile(.{ .file = b.path("src/miniaudio.cpp"), .flags = &.{"-fno-sanitize=all"}, .language = .c });
miniaudio_c.addIncludePath(b.path("include"));
const mod = b.addModule("miniaudio", .{ .target = opts.target, .optimize = opts.optimize, .root_source_file = b.path("src/miniaudio.zig") });
mod.linkLibrary(miniaudio_c);
mod.addIncludePath(b.path("./include"));
// ======== tests ============
const test_step = b.step("test", "");
const tests = b.addTest(.{
.root_module = b.createModule(.{
.target = opts.target,
.optimize = opts.optimize,
.root_source_file = b.path("src/miniaudio-test.zig"),
.link_libc = true,
}),
});
tests.addIncludePath(b.path("./include"));
tests.root_module.addImport("miniaudio", mod);
const runArtifact = b.addRunArtifact(tests);
test_step.dependOn(&runArtifact.step);
}