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

@ -16,7 +16,6 @@ const gpu = @import("libs/gpu/sdk.zig").Sdk(.{
}); });
const sysaudio = @import("libs/sysaudio/sdk.zig").Sdk(.{ const sysaudio = @import("libs/sysaudio/sdk.zig").Sdk(.{
.system_sdk = system_sdk, .system_sdk = system_sdk,
.sysjs = sysjs,
}); });
const core = @import("libs/core/sdk.zig").Sdk(.{ const core = @import("libs/core/sdk.zig").Sdk(.{
.gpu = gpu, .gpu = gpu,
@ -44,7 +43,7 @@ pub fn module(b: *std.Build, optimize: std.builtin.OptimizeMode, target: std.zig
.dependencies = &.{ .dependencies = &.{
.{ .name = "core", .module = core.module(b) }, .{ .name = "core", .module = core.module(b) },
.{ .name = "ecs", .module = ecs_dep.module("mach-ecs") }, .{ .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") }, .{ .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); var deps = std.ArrayList(std.build.ModuleDependency).init(b.allocator);
if (options.deps) |v| try deps.appendSlice(v); if (options.deps) |v| try deps.appendSlice(v);
try deps.append(.{ .name = "mach", .module = module(b, options.optimize, options.target) }); 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) }); if (options.use_freetype) |_| try deps.append(.{ .name = "freetype", .module = freetype.module(b) });
const app = try core.App.init(b, .{ const app = try core.App.init(b, .{

View file

@ -1,14 +1,12 @@
const std = @import("std"); const std = @import("std");
const sysaudio_sdk = @import("sdk.zig"); const sysaudio_sdk = @import("sdk.zig");
const system_sdk = @import("libs/mach-glfw/system_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 { pub fn build(b: *std.Build) void {
const optimize = b.standardOptimizeOption(.{}); const optimize = b.standardOptimizeOption(.{});
const target = b.standardTargetOptions(.{}); const target = b.standardTargetOptions(.{});
const sysaudio = sysaudio_sdk.Sdk(.{ const sysaudio = sysaudio_sdk.Sdk(.{
.system_sdk = system_sdk, .system_sdk = system_sdk,
.sysjs = sysjs,
}); });
const test_step = b.step("test", "Run library tests"); const test_step = b.step("test", "Run library tests");
@ -23,7 +21,7 @@ pub fn build(b: *std.Build) void {
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
}); });
example_exe.addModule("sysaudio", sysaudio.module(b)); example_exe.addModule("sysaudio", sysaudio.module(b, optimize, target));
sysaudio.link(b, example_exe, .{}); sysaudio.link(b, example_exe, .{});
b.installArtifact(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; 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; if (_module) |m| return m;
_module = b.createModule(.{
.source_file = .{ .path = sdkPath("/src/main.zig") }, if (target.getCpuArch() == .wasm32) {
.dependencies = &.{ const sysjs_dep = b.dependency("mach_sysjs", .{
.{ .name = "sysjs", .module = deps.sysjs.module(b) }, .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.?; return _module.?;
} }