diff --git a/libs/core/sdk.zig b/libs/core/sdk.zig index 5aedc1ed..c10fbc9a 100644 --- a/libs/core/sdk.zig +++ b/libs/core/sdk.zig @@ -115,11 +115,6 @@ pub fn Sdk(comptime deps: anytype) type { var dependencies = std.ArrayList(std.build.ModuleDependency).init(b.allocator); try dependencies.append(.{ .name = "core", .module = module(b) }); - try dependencies.append(.{ .name = "gpu", .module = deps.gpu.module(b) }); - switch (platform) { - .native => try dependencies.append(.{ .name = "glfw", .module = deps.glfw.module(b) }), - .web => try dependencies.append(.{ .name = "sysjs", .module = deps.sysjs.module(b) }), - } if (options.deps) |app_deps| try dependencies.appendSlice(app_deps); const app_module = b.createModule(.{ @@ -137,7 +132,7 @@ pub fn Sdk(comptime deps: anytype) type { } else { const exe = b.addExecutable(.{ .name = options.name, - .root_source_file = .{ .path = sdkPath("/src/main.zig") }, + .root_source_file = .{ .path = sdkPath("/src/entry.zig") }, .target = options.target, .optimize = options.optimize, }); @@ -151,7 +146,7 @@ pub fn Sdk(comptime deps: anytype) type { }; step.main_pkg_path = sdkPath("/src"); - step.addModule("gpu", deps.gpu.module(b)); + step.addModule("core", module(b)); step.addModule("app", app_module); return .{ diff --git a/libs/core/src/entry.zig b/libs/core/src/entry.zig index 1dba7509..d7e4cea1 100644 --- a/libs/core/src/entry.zig +++ b/libs/core/src/entry.zig @@ -1,6 +1,9 @@ const builtin = @import("builtin"); -pub usingnamespace @import("platform.zig").entry; +pub usingnamespace if (builtin.cpu.arch == .wasm32) + @import("platform/wasm/entry.zig") +else + @import("platform/native/entry.zig"); comptime { if (!builtin.is_test) { diff --git a/libs/core/src/main.zig b/libs/core/src/main.zig index fbf76140..bbf89ce9 100644 --- a/libs/core/src/main.zig +++ b/libs/core/src/main.zig @@ -1,8 +1,9 @@ -pub usingnamespace @import("entry.zig"); pub const Core = @import("Core.zig"); pub const Timer = @import("Timer.zig"); pub const gpu = @import("gpu"); pub const sysjs = @import("sysjs"); +const builtin = @import("builtin"); +pub const platform_util = if (builtin.cpu.arch == .wasm32) {} else @import("platform/native/util.zig"); test { _ = @import("platform/libmachcore.zig"); diff --git a/libs/core/src/platform.zig b/libs/core/src/platform.zig index e0c22973..82bc0638 100644 --- a/libs/core/src/platform.zig +++ b/libs/core/src/platform.zig @@ -7,7 +7,6 @@ else // Verifies that a platform implementation exposes the expected function declarations. comptime { - assertHasDecl(@This(), "entry"); assertHasDecl(@This(), "Core"); assertHasDecl(@This(), "Timer"); diff --git a/libs/core/src/platform/native.zig b/libs/core/src/platform/native.zig index f1fd4522..825041c5 100644 --- a/libs/core/src/platform/native.zig +++ b/libs/core/src/platform/native.zig @@ -1,5 +1,4 @@ const std = @import("std"); -pub const entry = @import("native/entry.zig"); pub const Core = @import("native/Core.zig"); pub const Timer = std.time.Timer; diff --git a/libs/core/src/platform/native/entry.zig b/libs/core/src/platform/native/entry.zig index 33bef41d..912ef374 100644 --- a/libs/core/src/platform/native/entry.zig +++ b/libs/core/src/platform/native/entry.zig @@ -1,7 +1,7 @@ const std = @import("std"); -const gpu = @import("gpu"); const App = @import("app").App; -const util = @import("util.zig"); +const core = @import("core"); +const gpu = core.gpu; pub const GPUInterface = gpu.dawn.Interface; @@ -28,8 +28,8 @@ pub fn main() !void { defer app.deinit(); while (true) { - const pool = try util.AutoReleasePool.init(); - defer util.AutoReleasePool.release(pool); + const pool = try core.platform_util.AutoReleasePool.init(); + defer core.platform_util.AutoReleasePool.release(pool); if (try app.update()) return; } } diff --git a/libs/core/src/platform/wasm.zig b/libs/core/src/platform/wasm.zig index df35ada7..79f799f9 100644 --- a/libs/core/src/platform/wasm.zig +++ b/libs/core/src/platform/wasm.zig @@ -1,3 +1,2 @@ pub const Core = @import("wasm/Core.zig"); pub const Timer = @import("wasm/Timer.zig"); -pub const entry = @import("wasm/entry.zig"); diff --git a/libs/core/src/platform/wasm/entry.zig b/libs/core/src/platform/wasm/entry.zig index 7d752165..e2735b1a 100644 --- a/libs/core/src/platform/wasm/entry.zig +++ b/libs/core/src/platform/wasm/entry.zig @@ -1,7 +1,11 @@ const std = @import("std"); -const gpu = @import("gpu"); +const core = @import("core"); +const gpu = core.gpu; const App = @import("app").App; -const js = @import("js.zig"); + +pub extern "mach" fn machLogWrite(str: [*]const u8, len: u32) void; +pub extern "mach" fn machLogFlush() void; +pub extern "mach" fn machPanic(str: [*]const u8, len: u32) void; pub const GPUInterface = gpu.StubInterface; const app_std_options = if (@hasDecl(App, "std_options")) App.std_options else struct {}; @@ -23,7 +27,7 @@ const LogError = error{}; const LogWriter = std.io.Writer(void, LogError, writeLog); fn writeLog(_: void, msg: []const u8) LogError!usize { - js.machLogWrite(msg.ptr, msg.len); + machLogWrite(msg.ptr, msg.len); return msg.len; } @@ -38,7 +42,7 @@ pub const std_options = struct { const writer = LogWriter{ .context = {} }; writer.print(message_level.asText() ++ prefix ++ format ++ "\n", args) catch return; - js.machLogFlush(); + machLogFlush(); } pub const log_level = if (@hasDecl(app_std_options, "log_level")) @@ -55,6 +59,6 @@ pub const std_options = struct { pub fn panic(msg: []const u8, error_return_trace: ?*std.builtin.StackTrace, ret_addr: ?usize) noreturn { _ = error_return_trace; _ = ret_addr; - js.machPanic(msg.ptr, msg.len); + machPanic(msg.ptr, msg.len); unreachable; }