mach: finalizing changes for now

This commit is contained in:
iddev5 2022-04-28 23:41:32 +05:30 committed by Stephen Gutekanst
parent 5249e72408
commit 5c984d9795
2 changed files with 17 additions and 11 deletions

View file

@ -39,12 +39,13 @@ pub fn build(b: *std.build.Builder) void {
//.{ .name = "textured-cube", .packages = &[_]Pkg{ Packages.zmath, Packages.zigimg } }, //.{ .name = "textured-cube", .packages = &[_]Pkg{ Packages.zmath, Packages.zigimg } },
//.{ .name = "fractal-cube", .packages = &[_]Pkg{Packages.zmath} }, //.{ .name = "fractal-cube", .packages = &[_]Pkg{Packages.zmath} },
}) |example| { }) |example| {
const example_name = example.name; const example_app = App.init(
const example_app = MachApp.createApplication(
b, b,
"example-" ++ example_name, .{
"examples/" ++ example_name ++ "/main.zig", .name = "example-" ++ example.name,
&.{ glfw.pkg, gpu.pkg, pkg }, .src = "examples/" ++ example.name ++ "/main.zig",
.deps = &.{ glfw.pkg, gpu.pkg, pkg },
},
); );
const example_exe = example_app.step; const example_exe = example_app.step;
example_exe.setTarget(target); example_exe.setTarget(target);
@ -98,16 +99,20 @@ const Packages = struct {
}; };
}; };
const MachApp = struct { const App = struct {
step: *std.build.LibExeObjStep, step: *std.build.LibExeObjStep,
b: *std.build.Builder, b: *std.build.Builder,
pub fn createApplication(b: *std.build.Builder, name: []const u8, src: []const u8, deps: []const Pkg) MachApp { pub fn init(b: *std.build.Builder, options: struct {
const exe = b.addExecutable(name, "src/entry_native.zig"); name: []const u8,
src: []const u8,
deps: ?[]const Pkg = null,
}) App {
const exe = b.addExecutable(options.name, "src/entry_native.zig");
exe.addPackage(.{ exe.addPackage(.{
.name = "app", .name = "app",
.path = .{ .path = src }, .path = .{ .path = options.src },
.dependencies = deps, .dependencies = options.deps,
}); });
exe.addPackage(gpu.pkg); exe.addPackage(gpu.pkg);
exe.addPackage(glfw.pkg); exe.addPackage(glfw.pkg);
@ -118,7 +123,7 @@ const MachApp = struct {
}; };
} }
pub fn link(app: *const MachApp, options: Options) void { pub fn link(app: *const App, options: Options) void {
const gpu_options = gpu.Options{ const gpu_options = gpu.Options{
.glfw_options = @bitCast(@import("gpu/libs/mach-glfw/build.zig").Options, options.glfw_options), .glfw_options = @bitCast(@import("gpu/libs/mach-glfw/build.zig").Options, options.glfw_options),
.gpu_dawn_options = @bitCast(@import("gpu/libs/mach-gpu-dawn/build.zig").Options, options.gpu_dawn_options), .gpu_dawn_options = @bitCast(@import("gpu/libs/mach-gpu-dawn/build.zig").Options, options.gpu_dawn_options),

View file

@ -68,6 +68,7 @@ fn init(allocator: Allocator, options: Options) !Engine {
const found_backend_type = @intToEnum(gpu.Adapter.BackendType, c.machDawnNativeAdapterProperties_getBackendType(properties)); const found_backend_type = @intToEnum(gpu.Adapter.BackendType, c.machDawnNativeAdapterProperties_getBackendType(properties));
if (found_backend_type == backend_type) { if (found_backend_type == backend_type) {
dawn_adapter = adapter; dawn_adapter = adapter;
break;
} }
} }
if (dawn_adapter == null) { if (dawn_adapter == null) {