diff --git a/build.zig b/build.zig index 6a92623..264c523 100755 --- a/build.zig +++ b/build.zig @@ -43,7 +43,7 @@ fn link( b: *std.Build, exe: *std.Build.Step.Compile, target: std.Build.ResolvedTarget, - optimize: std.builtin.Mode, + optimize: std.builtin.OptimizeMode, options: Options, ) void { const lib = getRaylib(b, target, optimize, options); @@ -91,7 +91,7 @@ fn link( } var _raylib_lib_cache: ?*std.Build.Step.Compile = null; -fn getRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.Mode, options: Options) *std.Build.Step.Compile { +fn getRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, options: Options) *std.Build.Step.Compile { if (_raylib_lib_cache) |lib| return lib else { const raylib = b.dependency("raylib", .{ .target = target, @@ -138,7 +138,7 @@ fn getRaylib(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.buil } } -fn getModule(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.Mode) *std.Build.Module { +fn getModule(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) *std.Build.Module { if (b.modules.contains("raylib")) { return b.modules.get("raylib").?; } @@ -150,7 +150,7 @@ fn getModule(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.buil } const gui = struct { - fn getModule(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.Mode) *std.Build.Module { + fn getModule(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) *std.Build.Module { const raylib = this.getModule(b, target, optimize); return b.addModule("raygui", .{ .root_source_file = b.path("lib/raygui.zig"), diff --git a/project_setup.ps1 b/project_setup.ps1 index 93c4c27..50e17e2 100644 --- a/project_setup.ps1 +++ b/project_setup.ps1 @@ -34,6 +34,9 @@ pub fn build(b: *std.Build) !void { // Note that raylib itself is not actually added to the exe_lib output file, so it also needs to be linked with emscripten. const link_step = try rlz.emcc.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact }); + //this lets your program access files like "resources/my-image.png": + link_step.addArg("--embed-file"); + link_step.addArg("resources/"); b.getInstallStep().dependOn(&link_step.step); const run_step = try rlz.emcc.emscriptenRunStep(b); @@ -77,5 +80,7 @@ $ZON_FILE = @" New-Item -Name "build.zig.zon" -ItemType "file" -Value $ZON_FILE -Force New-Item -Name "src" -ItemType "directory" +New-Item -Name "resources" -ItemType "directory" +New-Item -Name "resources/placeholder.txt" -ItemType "file" -Value "" -Force Copy-Item -Path "../examples/core/basic_window.zig" -Destination "src/main.zig" diff --git a/project_setup.sh b/project_setup.sh index 9613bcb..e005929 100755 --- a/project_setup.sh +++ b/project_setup.sh @@ -33,6 +33,9 @@ pub fn build(b: *std.Build) !void { // Note that raylib itself is not actually added to the exe_lib output file, so it also needs to be linked with emscripten. const link_step = try rlz.emcc.linkWithEmscripten(b, &[_]*std.Build.Step.Compile{ exe_lib, raylib_artifact }); + //this lets your program access files like "resources/my-image.png": + link_step.addArg("--embed-file"); + link_step.addArg("resources/"); b.getInstallStep().dependOn(&link_step.step); const run_step = try rlz.emcc.emscriptenRunStep(b); @@ -69,4 +72,7 @@ echo '.{ }' >> build.zig.zon mkdir src +mkdir resources +touch resources/placeholder.txt + cp ../examples/core/basic_window.zig src/main.zig