summary refs log tree commit diff
path: root/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig46
1 files changed, 28 insertions, 18 deletions
diff --git a/build.zig b/build.zig
index 7b087a2..67f6993 100644
--- a/build.zig
+++ b/build.zig
@@ -1,5 +1,5 @@
 // Build recipe
-// Copyright (C) 2021-2022  Nguyễn Gia Phong
+// Copyright (C) 2021-2023  Nguyễn Gia Phong
 //
 // This file is part of zeal.
 //
@@ -17,16 +17,22 @@
 // along with zeal.  If not, see <https://www.gnu.org/licenses/>.
 
 const std = @import("std");
-const Builder = std.build.Builder;
+const Build = std.Build;
+const CrossTarget = std.zig.CrossTarget;
 const LibExeObjStep = std.build.LibExeObjStep;
-const Mode = std.builtin.Mode;
+const OptimizeMode = std.builtin.OptimizeMode;
 
 fn addExampleStep(comptime name: []const u8, description: []const u8,
-                  b: *Builder, lib: *LibExeObjStep, mode: Mode) void {
-    const bin = b.addExecutable(name, "examples/" ++ name ++ ".zig");
+                  b: *Build, lib: *LibExeObjStep,
+                  target: CrossTarget, optimize: OptimizeMode) void {
+    const bin = b.addExecutable(.{
+        .name = name,
+        .root_source_file = .{ .path = "examples/" ++ name ++ ".zig" },
+        .target = target,
+        .optimize = optimize,
+    });
     bin.addPackagePath("zeal", "src/zeal.zig");
     bin.linkLibrary(lib);
-    bin.setBuildMode(mode);
 
     const cmd = bin.run();
     cmd.step.dependOn(b.getInstallStep());
@@ -42,21 +48,25 @@ pub fn link(lib_exe_obj: *LibExeObjStep) void {
     lib_exe_obj.linkSystemLibrary("c");
 }
 
-pub fn build(b: *Builder) void {
-    // Standard release options allow the person running `zig build` to select
-    // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
-    const mode = b.standardReleaseOptions();
-
-    const lib = b.addStaticLibrary("zeal", "src/zeal.zig");
+pub fn build(b: *Build) void {
+    const target = b.standardTargetOptions(.{});
+    const optimize = b.standardOptimizeOption(.{});
+    const lib = b.addStaticLibrary(.{
+        .name = "zeal",
+        .root_source_file = .{ .path = "src/zeal.zig" },
+        .target = target,
+        .optimize = optimize,
+    });
     link(lib);
-    lib.setBuildMode(mode);
-    lib.install();
 
-    var main_tests = b.addTest("src/zeal.zig");
+    var main_tests = b.addTest(.{
+        .root_source_file = .{ .path = "src/zeal.zig" },
+        .target = target,
+        .optimize = optimize,
+    });
     main_tests.linkLibrary(lib);
-    main_tests.setBuildMode(mode);
     b.step("test", "Run library tests").dependOn(&main_tests.step);
 
-    addExampleStep("play", "Play audio", b, lib, mode);
-    addExampleStep("hrtf", "Play audio with HRTF", b, lib, mode);
+    //addExampleStep("play", "Play audio", b, lib, target, optimize);
+    //addExampleStep("hrtf", "Play audio with HRTF", b, lib, target, optimize);
 }