fix wasm32-freestanding builds
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
f29b775b27
commit
55317a1afc
2 changed files with 62 additions and 59 deletions
41
build.zig
41
build.zig
|
|
@ -76,6 +76,7 @@ pub fn build(b: *std.Build) !void {
|
||||||
if (target.result.os.tag == .linux) module.link_libc = true;
|
if (target.result.os.tag == .linux) module.link_libc = true;
|
||||||
|
|
||||||
// TODO(Zig 2024.03): use b.lazyDependency
|
// TODO(Zig 2024.03): use b.lazyDependency
|
||||||
|
if (target.result.cpu.arch != .wasm32) {
|
||||||
const mach_basisu_dep = b.dependency("mach_basisu", .{
|
const mach_basisu_dep = b.dependency("mach_basisu", .{
|
||||||
.target = target,
|
.target = target,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
|
|
@ -84,15 +85,16 @@ pub fn build(b: *std.Build) !void {
|
||||||
.target = target,
|
.target = target,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
});
|
});
|
||||||
|
module.addImport("mach-basisu", mach_basisu_dep.module("mach-basisu"));
|
||||||
|
module.addImport("mach-freetype", mach_freetype_dep.module("mach-freetype"));
|
||||||
|
module.addImport("mach-harfbuzz", mach_freetype_dep.module("mach-harfbuzz"));
|
||||||
|
}
|
||||||
const mach_sysjs_dep = b.dependency("mach_sysjs", .{
|
const mach_sysjs_dep = b.dependency("mach_sysjs", .{
|
||||||
.target = target,
|
.target = target,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
});
|
});
|
||||||
const font_assets_dep = b.dependency("font_assets", .{});
|
const font_assets_dep = b.dependency("font_assets", .{});
|
||||||
|
|
||||||
module.addImport("mach-basisu", mach_basisu_dep.module("mach-basisu"));
|
|
||||||
module.addImport("mach-freetype", mach_freetype_dep.module("mach-freetype"));
|
|
||||||
module.addImport("mach-harfbuzz", mach_freetype_dep.module("mach-harfbuzz"));
|
|
||||||
module.addImport("mach-sysjs", mach_sysjs_dep.module("mach-sysjs"));
|
module.addImport("mach-sysjs", mach_sysjs_dep.module("mach-sysjs"));
|
||||||
module.addImport("font-assets", font_assets_dep.module("font-assets"));
|
module.addImport("font-assets", font_assets_dep.module("font-assets"));
|
||||||
}
|
}
|
||||||
|
|
@ -131,6 +133,7 @@ pub fn build(b: *std.Build) !void {
|
||||||
}
|
}
|
||||||
if (want_sysaudio) {
|
if (want_sysaudio) {
|
||||||
// Can build sysaudio examples if desired, then.
|
// Can build sysaudio examples if desired, then.
|
||||||
|
if (target.result.cpu.arch != .wasm32) {
|
||||||
inline for ([_][]const u8{
|
inline for ([_][]const u8{
|
||||||
"sine",
|
"sine",
|
||||||
"record",
|
"record",
|
||||||
|
|
@ -155,19 +158,18 @@ pub fn build(b: *std.Build) !void {
|
||||||
const example_run_step = b.step("run-sysaudio-" ++ example, "Run '" ++ example ++ "' example");
|
const example_run_step = b.step("run-sysaudio-" ++ example, "Run '" ++ example ++ "' example");
|
||||||
example_run_step.dependOn(&example_run_cmd.step);
|
example_run_step.dependOn(&example_run_cmd.step);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add sysaudio dependencies to the module.
|
|
||||||
// TODO(Zig 2024.03): use b.lazyDependency
|
|
||||||
const mach_sysjs_dep = b.dependency("mach_sysjs", .{
|
|
||||||
.target = target,
|
|
||||||
.optimize = optimize,
|
|
||||||
});
|
|
||||||
const mach_objc_dep = b.dependency("mach_objc", .{
|
const mach_objc_dep = b.dependency("mach_objc", .{
|
||||||
.target = target,
|
.target = target,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
});
|
});
|
||||||
module.addImport("sysjs", mach_sysjs_dep.module("mach-sysjs"));
|
|
||||||
module.addImport("objc", mach_objc_dep.module("mach-objc"));
|
module.addImport("objc", mach_objc_dep.module("mach-objc"));
|
||||||
|
} else {
|
||||||
|
const mach_sysjs_dep = b.dependency("mach_sysjs", .{
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
});
|
||||||
|
module.addImport("sysjs", mach_sysjs_dep.module("mach-sysjs"));
|
||||||
|
}
|
||||||
|
|
||||||
if (target.result.isDarwin()) {
|
if (target.result.isDarwin()) {
|
||||||
// Transitive dependencies, explicit linkage of these works around
|
// Transitive dependencies, explicit linkage of these works around
|
||||||
|
|
@ -485,9 +487,9 @@ pub fn link(core_builder: *std.Build, step: *std.Build.Step.Compile, mod: *std.B
|
||||||
}
|
}
|
||||||
|
|
||||||
fn linkSysgpu(b: *std.Build, module: *std.Build.Module) void {
|
fn linkSysgpu(b: *std.Build, module: *std.Build.Module) void {
|
||||||
module.link_libc = true;
|
const resolved_target = module.resolved_target orelse b.host;
|
||||||
|
const target = resolved_target.result;
|
||||||
const target = module.resolved_target.?.result;
|
if (target.cpu.arch != .wasm32) module.link_libc = true;
|
||||||
if (target.isDarwin()) {
|
if (target.isDarwin()) {
|
||||||
module.linkSystemLibrary("objc", .{});
|
module.linkSystemLibrary("objc", .{});
|
||||||
module.linkFramework("AppKit", .{});
|
module.linkFramework("AppKit", .{});
|
||||||
|
|
@ -501,25 +503,26 @@ fn linkSysgpu(b: *std.Build, module: *std.Build.Module) void {
|
||||||
module.linkSystemLibrary("d3dcompiler_47", .{});
|
module.linkSystemLibrary("d3dcompiler_47", .{});
|
||||||
module.linkSystemLibrary("opengl32", .{});
|
module.linkSystemLibrary("opengl32", .{});
|
||||||
module.linkLibrary(b.dependency("direct3d_headers", .{
|
module.linkLibrary(b.dependency("direct3d_headers", .{
|
||||||
.target = module.resolved_target orelse b.host,
|
.target = resolved_target,
|
||||||
.optimize = module.optimize.?,
|
.optimize = module.optimize.?,
|
||||||
}).artifact("direct3d-headers"));
|
}).artifact("direct3d-headers"));
|
||||||
@import("direct3d_headers").addLibraryPathToModule(module);
|
@import("direct3d_headers").addLibraryPathToModule(module);
|
||||||
module.linkLibrary(b.dependency("opengl_headers", .{
|
module.linkLibrary(b.dependency("opengl_headers", .{
|
||||||
.target = module.resolved_target orelse b.host,
|
.target = resolved_target,
|
||||||
.optimize = module.optimize.?,
|
.optimize = module.optimize.?,
|
||||||
}).artifact("opengl-headers"));
|
}).artifact("opengl-headers"));
|
||||||
}
|
}
|
||||||
|
if (target.cpu.arch != .wasm32) {
|
||||||
module.linkLibrary(b.dependency("spirv_cross", .{
|
module.linkLibrary(b.dependency("spirv_cross", .{
|
||||||
.target = module.resolved_target orelse b.host,
|
.target = resolved_target,
|
||||||
.optimize = module.optimize.?,
|
.optimize = module.optimize.?,
|
||||||
}).artifact("spirv-cross"));
|
}).artifact("spirv-cross"));
|
||||||
module.linkLibrary(b.dependency("spirv_tools", .{
|
module.linkLibrary(b.dependency("spirv_tools", .{
|
||||||
.target = module.resolved_target orelse b.host,
|
.target = resolved_target,
|
||||||
.optimize = module.optimize.?,
|
.optimize = module.optimize.?,
|
||||||
}).artifact("spirv-opt"));
|
}).artifact("spirv-opt"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn addPaths(mod: *std.Build.Module) void {
|
pub fn addPaths(mod: *std.Build.Module) void {
|
||||||
if (mod.resolved_target.?.result.isDarwin()) @import("xcode_frameworks").addPaths(mod);
|
if (mod.resolved_target.?.result.isDarwin()) @import("xcode_frameworks").addPaths(mod);
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ pub const Context = struct {
|
||||||
pub fn refresh(ctx: *Context) !void {
|
pub fn refresh(ctx: *Context) !void {
|
||||||
for (ctx.devices_info.list.items) |d|
|
for (ctx.devices_info.list.items) |d|
|
||||||
freeDevice(ctx.allocator, d);
|
freeDevice(ctx.allocator, d);
|
||||||
ctx.devices_info.clear(ctx.allocator);
|
ctx.devices_info.clear();
|
||||||
|
|
||||||
try ctx.devices_info.list.append(ctx.allocator, default_playback);
|
try ctx.devices_info.list.append(ctx.allocator, default_playback);
|
||||||
ctx.devices_info.list.items[0].channels = try ctx.allocator.alloc(main.ChannelPosition, 2);
|
ctx.devices_info.list.items[0].channels = try ctx.allocator.alloc(main.ChannelPosition, 2);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue