example: use addSystemCommand instead of shader compile step

This commit is contained in:
Robin Voetter
2024-09-04 23:37:49 +02:00
parent f7b21d034f
commit 976dbfbcca
2 changed files with 27 additions and 14 deletions

View File

@@ -1,7 +1,6 @@
const std = @import("std");
const vkgen = @import("vulkan_zig");
const ShaderCompileStep = vkgen.ShaderCompileStep;
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
@@ -33,15 +32,27 @@ pub fn build(b: *std.Build) void {
.root_source_file = vk_generate_cmd.addOutputFileArg("vk.zig"),
});
const shaders = ShaderCompileStep.create(
b,
.{ .real_path = "glslc" },
&[_][]const u8{"--target-env=vulkan1.2"},
const vert_cmd = b.addSystemCommand(&.{
"glslc",
"--target-env=vulkan1.2",
"-o",
);
shaders.add("triangle_vert", "shaders/triangle.vert", .{});
shaders.add("triangle_frag", "shaders/triangle.frag", .{});
triangle_exe.root_module.addImport("shaders", shaders.getModule());
});
const vert_spv = vert_cmd.addOutputFileArg("vert.spv");
vert_cmd.addFileArg(b.path("shaders/triangle.vert"));
triangle_exe.root_module.addAnonymousImport("vertex_shader", .{
.root_source_file = vert_spv,
});
const frag_cmd = b.addSystemCommand(&.{
"glslc",
"--target-env=vulkan1.2",
"-o",
});
const frag_spv = frag_cmd.addOutputFileArg("frag.spv");
frag_cmd.addFileArg(b.path("shaders/triangle.frag"));
triangle_exe.root_module.addAnonymousImport("fragment_shader", .{
.root_source_file = frag_spv,
});
const triangle_run_cmd = b.addRunArtifact(triangle_exe);
triangle_run_cmd.step.dependOn(b.getInstallStep());