build: fix core example imports

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2024-04-20 09:39:33 -07:00 committed by Stephen Gutekanst
parent c26d9a40d1
commit 38fb23e22a

104
build.zig
View file

@ -320,6 +320,7 @@ pub fn build(b: *std.Build) !void {
pub const CoreApp = struct { pub const CoreApp = struct {
b: *std.Build, b: *std.Build,
name: []const u8, name: []const u8,
module: *std.Build.Module,
compile: *std.Build.Step.Compile, compile: *std.Build.Step.Compile,
install: *std.Build.Step.InstallArtifact, install: *std.Build.Step.InstallArtifact,
run: *std.Build.Step.Run, run: *std.Build.Step.Run,
@ -446,6 +447,7 @@ pub const CoreApp = struct {
run.step.dependOn(&install.step); run.step.dependOn(&install.step);
return .{ return .{
.b = app_builder, .b = app_builder,
.module = app_module,
.compile = compile, .compile = compile,
.install = install, .install = install,
.run = run, .run = run,
@ -652,59 +654,59 @@ fn buildCoreExamples(
std_platform_only: bool = false, std_platform_only: bool = false,
sysgpu: bool = false, sysgpu: bool = false,
}{ }{
.{ .name = "wasm-test" }, .{ .name = "wasm-test", .deps = &.{.zmath} },
.{ .name = "triangle" }, .{ .name = "triangle", .deps = &.{.zmath} },
.{ .name = "triangle-msaa" }, .{ .name = "triangle-msaa", .deps = &.{.zmath} },
.{ .name = "clear-color" }, .{ .name = "clear-color", .deps = &.{.zmath} },
.{ .name = "procedural-primitives" }, .{ .name = "procedural-primitives", .deps = &.{.zmath} },
.{ .name = "boids" }, .{ .name = "boids", .deps = &.{.zmath} },
.{ .name = "rotating-cube" }, .{ .name = "rotating-cube", .deps = &.{.zmath} },
.{ .name = "pixel-post-process" }, .{ .name = "pixel-post-process", .deps = &.{.zmath} },
.{ .name = "two-cubes" }, .{ .name = "two-cubes", .deps = &.{.zmath} },
.{ .name = "instanced-cube" }, .{ .name = "instanced-cube", .deps = &.{.zmath} },
.{ .name = "gen-texture-light" }, .{ .name = "gen-texture-light", .deps = &.{.zmath} },
.{ .name = "fractal-cube" }, .{ .name = "fractal-cube", .deps = &.{.zmath} },
.{ .name = "map-async" }, .{ .name = "map-async", .deps = &.{.zmath} },
.{ .name = "rgb-quad" }, .{ .name = "rgb-quad", .deps = &.{.zmath} },
.{ .{
.name = "pbr-basic", .name = "pbr-basic",
.deps = &.{ .model3d, .assets }, .deps = &.{ .zmath, .model3d, .assets },
.std_platform_only = true, .std_platform_only = true,
}, },
.{ .{
.name = "deferred-rendering", .name = "deferred-rendering",
.deps = &.{ .model3d, .assets }, .deps = &.{ .zmath, .model3d, .assets },
.std_platform_only = true, .std_platform_only = true,
}, },
.{ .name = "textured-cube", .deps = &.{ .zigimg, .assets } }, .{ .name = "textured-cube", .deps = &.{ .zmath, .zigimg, .assets } },
.{ .name = "textured-quad", .deps = &.{ .zigimg, .assets } }, .{ .name = "textured-quad", .deps = &.{ .zmath, .zigimg, .assets } },
.{ .name = "sprite2d", .deps = &.{ .zigimg, .assets } }, .{ .name = "sprite2d", .deps = &.{ .zmath, .zigimg, .assets } },
.{ .name = "image", .deps = &.{ .zigimg, .assets } }, .{ .name = "image", .deps = &.{ .zmath, .zigimg, .assets } },
.{ .name = "image-blur", .deps = &.{ .zigimg, .assets } }, .{ .name = "image-blur", .deps = &.{ .zmath, .zigimg, .assets } },
.{ .name = "cubemap", .deps = &.{ .zigimg, .assets } }, .{ .name = "cubemap", .deps = &.{ .zmath, .zigimg, .assets } },
// sysgpu // sysgpu
.{ .name = "boids", .sysgpu = true }, .{ .name = "boids", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "clear-color", .sysgpu = true }, .{ .name = "clear-color", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "cubemap", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "cubemap", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "deferred-rendering", .deps = &.{ .model3d, .assets }, .std_platform_only = true, .sysgpu = true }, .{ .name = "deferred-rendering", .deps = &.{ .zmath, .model3d, .assets }, .std_platform_only = true, .sysgpu = true },
.{ .name = "fractal-cube", .sysgpu = true }, .{ .name = "fractal-cube", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "gen-texture-light", .sysgpu = true }, .{ .name = "gen-texture-light", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "image-blur", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "image-blur", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "instanced-cube", .sysgpu = true }, .{ .name = "instanced-cube", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "map-async", .sysgpu = true }, .{ .name = "map-async", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "pbr-basic", .deps = &.{ .model3d, .assets }, .std_platform_only = true, .sysgpu = true }, .{ .name = "pbr-basic", .deps = &.{ .zmath, .model3d, .assets }, .std_platform_only = true, .sysgpu = true },
.{ .name = "pixel-post-process", .sysgpu = true }, .{ .name = "pixel-post-process", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "procedural-primitives", .sysgpu = true }, .{ .name = "procedural-primitives", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "rotating-cube", .sysgpu = true }, .{ .name = "rotating-cube", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "sprite2d", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "sprite2d", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "image", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "image", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "textured-cube", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "textured-cube", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "textured-quad", .deps = &.{ .zigimg, .assets }, .sysgpu = true }, .{ .name = "textured-quad", .deps = &.{ .zmath, .zigimg, .assets }, .sysgpu = true },
.{ .name = "triangle", .sysgpu = true }, .{ .name = "triangle", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "triangle-msaa", .sysgpu = true }, .{ .name = "triangle-msaa", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "two-cubes", .sysgpu = true }, .{ .name = "two-cubes", .deps = &.{.zmath}, .sysgpu = true },
.{ .name = "rgb-quad", .sysgpu = true }, .{ .name = "rgb-quad", .deps = &.{.zmath}, .sysgpu = true },
}) |example| { }) |example| {
// FIXME: this is workaround for a problem that some examples // FIXME: this is workaround for a problem that some examples
// (having the std_platform_only=true field) as well as zigimg // (having the std_platform_only=true field) as well as zigimg
@ -737,39 +739,31 @@ fn buildCoreExamples(
}, },
); );
// for (example.deps) |dep| switch (dep) {
// .model3d => if (b.lazyDependency("mach_model3d", .{
// .target = target,
// .optimize = optimize,
// })) |d| app.compile.linkLibrary(d.artifact("mach-model3d")),
// else => {},
// };
for (example.deps) |d| { for (example.deps) |d| {
switch (d) { switch (d) {
.zigimg => { .zigimg => {
if (b.lazyDependency("zigimg", .{ if (b.lazyDependency("zigimg", .{
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
})) |dep| app.compile.root_module.addImport("zigimg", dep.module("zigimg")); })) |dep| app.module.addImport("zigimg", dep.module("zigimg"));
}, },
.model3d => { .model3d => {
if (b.lazyDependency("mach_model3d", .{ if (b.lazyDependency("mach_model3d", .{
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
})) |dep| app.compile.root_module.addImport("model3d", dep.module("mach-model3d")); })) |dep| app.module.addImport("model3d", dep.module("mach-model3d"));
}, },
.assets => { .assets => {
if (b.lazyDependency("mach_example_assets", .{ if (b.lazyDependency("mach_example_assets", .{
.target = target, .target = target,
.optimize = optimize, .optimize = optimize,
})) |dep| app.compile.root_module.addImport("assets", dep.module("mach-example-assets")); })) |dep| app.module.addImport("assets", dep.module("mach-example-assets"));
}, },
.zmath => { .zmath => {
const zmath = b.createModule(.{ const zmath = b.createModule(.{
.root_source_file = .{ .path = "src/core/examples/zmath.zig" }, .root_source_file = .{ .path = "src/core/examples/zmath.zig" },
}); });
app.compile.root_module.addImport("zmath", zmath); app.module.addImport("zmath", zmath);
}, },
} }
} }