From dfcfc20db896fcea24b632736a86aca70d9a48b7 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Fri, 19 May 2023 08:35:52 -0700 Subject: [PATCH] sysaudio: use mach-sysjs via package manager Signed-off-by: Stephen Gutekanst --- build.zig | 5 ++--- libs/sysaudio/build.zig | 4 +--- libs/sysaudio/build.zig.zon | 11 +++++++++++ libs/sysaudio/libs/mach-sysjs | 1 - libs/sysaudio/sdk.zig | 25 ++++++++++++++++++------- 5 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 libs/sysaudio/build.zig.zon delete mode 120000 libs/sysaudio/libs/mach-sysjs diff --git a/build.zig b/build.zig index ac5d7ade..222eae14 100644 --- a/build.zig +++ b/build.zig @@ -16,7 +16,6 @@ const gpu = @import("libs/gpu/sdk.zig").Sdk(.{ }); const sysaudio = @import("libs/sysaudio/sdk.zig").Sdk(.{ .system_sdk = system_sdk, - .sysjs = sysjs, }); const core = @import("libs/core/sdk.zig").Sdk(.{ .gpu = gpu, @@ -44,7 +43,7 @@ pub fn module(b: *std.Build, optimize: std.builtin.OptimizeMode, target: std.zig .dependencies = &.{ .{ .name = "core", .module = core.module(b) }, .{ .name = "ecs", .module = ecs_dep.module("mach-ecs") }, - .{ .name = "sysaudio", .module = sysaudio.module(b) }, + .{ .name = "sysaudio", .module = sysaudio.module(b, optimize, target) }, .{ .name = "earcut", .module = earcut_dep.module("mach-earcut") }, }, }); @@ -180,7 +179,7 @@ pub const App = struct { var deps = std.ArrayList(std.build.ModuleDependency).init(b.allocator); if (options.deps) |v| try deps.appendSlice(v); try deps.append(.{ .name = "mach", .module = module(b, options.optimize, options.target) }); - try deps.append(.{ .name = "sysaudio", .module = sysaudio.module(b) }); + try deps.append(.{ .name = "sysaudio", .module = sysaudio.module(b, options.optimize, options.target) }); if (options.use_freetype) |_| try deps.append(.{ .name = "freetype", .module = freetype.module(b) }); const app = try core.App.init(b, .{ diff --git a/libs/sysaudio/build.zig b/libs/sysaudio/build.zig index dccc340b..34727473 100644 --- a/libs/sysaudio/build.zig +++ b/libs/sysaudio/build.zig @@ -1,14 +1,12 @@ const std = @import("std"); const sysaudio_sdk = @import("sdk.zig"); const system_sdk = @import("libs/mach-glfw/system_sdk.zig"); -const sysjs = @import("libs/mach-sysjs/build.zig"); pub fn build(b: *std.Build) void { const optimize = b.standardOptimizeOption(.{}); const target = b.standardTargetOptions(.{}); const sysaudio = sysaudio_sdk.Sdk(.{ .system_sdk = system_sdk, - .sysjs = sysjs, }); const test_step = b.step("test", "Run library tests"); @@ -23,7 +21,7 @@ pub fn build(b: *std.Build) void { .target = target, .optimize = optimize, }); - example_exe.addModule("sysaudio", sysaudio.module(b)); + example_exe.addModule("sysaudio", sysaudio.module(b, optimize, target)); sysaudio.link(b, example_exe, .{}); b.installArtifact(example_exe); diff --git a/libs/sysaudio/build.zig.zon b/libs/sysaudio/build.zig.zon new file mode 100644 index 00000000..7d297a2a --- /dev/null +++ b/libs/sysaudio/build.zig.zon @@ -0,0 +1,11 @@ +.{ + .name = "mach-sysaudio", + .version = "0.2.0", + + .dependencies = .{ + .mach_sysjs = .{ + .url = "https://github.com/hexops/mach-sysjs/archive/b71eb0531f337fcca5a2b245f595355260109a34.tar.gz", + .hash = "12208b30f1d9c229d1e64483354610207c9aa06350a46558560b818d597800ed86e0", + }, + }, +} diff --git a/libs/sysaudio/libs/mach-sysjs b/libs/sysaudio/libs/mach-sysjs deleted file mode 120000 index 5d9f611e..00000000 --- a/libs/sysaudio/libs/mach-sysjs +++ /dev/null @@ -1 +0,0 @@ -../../sysjs \ No newline at end of file diff --git a/libs/sysaudio/sdk.zig b/libs/sysaudio/sdk.zig index 7686f204..7becb88e 100644 --- a/libs/sysaudio/sdk.zig +++ b/libs/sysaudio/sdk.zig @@ -11,14 +11,25 @@ pub fn Sdk(comptime deps: anytype) type { var _module: ?*std.build.Module = null; - pub fn module(b: *std.Build) *std.build.Module { + pub fn module(b: *std.Build, optimize: std.builtin.OptimizeMode, target: std.zig.CrossTarget) *std.build.Module { if (_module) |m| return m; - _module = b.createModule(.{ - .source_file = .{ .path = sdkPath("/src/main.zig") }, - .dependencies = &.{ - .{ .name = "sysjs", .module = deps.sysjs.module(b) }, - }, - }); + + if (target.getCpuArch() == .wasm32) { + const sysjs_dep = b.dependency("mach_sysjs", .{ + .target = target, + .optimize = optimize, + }); + _module = b.createModule(.{ + .source_file = .{ .path = sdkPath("/src/main.zig") }, + .dependencies = &.{ + .{ .name = "sysjs", .module = sysjs_dep.module("mach-sysjs") }, + }, + }); + } else { + _module = b.createModule(.{ + .source_file = .{ .path = sdkPath("/src/main.zig") }, + }); + } return _module.?; }