sysaudio: use mach-sysjs via package manager

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2023-05-19 08:35:52 -07:00
parent a69119c279
commit dfcfc20db8
5 changed files with 32 additions and 14 deletions

View file

@ -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);

View file

@ -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",
},
},
}

View file

@ -1 +0,0 @@
../../sysjs

View file

@ -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.?;
}