From 3ba70b49ed2d0940ed9becc37327a633e451a435 Mon Sep 17 00:00:00 2001 From: Jae B Date: Thu, 11 Sep 2025 10:55:56 +1000 Subject: [PATCH 1/4] fix nightly build and add current stable build to CI --- .github/workflows/ci.yml | 23 +++++++++++++++++++-- src/androidbuild/builtin_options_update.zig | 6 +----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b39eb9..7244691 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,13 +41,13 @@ jobs: # Stable Zig Builds # - - name: Setup Zig Stable (0.14.0) + - name: Setup Zig Stable (0.15.1) # note(jae): 2024-09-15 # Uses download mirror first as preferred by Zig Foundation # see: https://ziglang.org/news/migrate-to-self-hosting/ uses: mlugg/setup-zig@v2 with: - version: "0.14.0" + version: "0.15.1" - name: Build Minimal Example (Zig Stable) run: zig build -Dandroid=true --verbose @@ -94,6 +94,25 @@ jobs: # adb shell monkey --kill-process-after-error --monitor-native-crashes --pct-touch 100 -p com.zig.sdl2 --throttle 1000 -v 2 # working-directory: examples/sdl2 + # + # Previous Stable Zig Build + # + + - name: Setup Zig Previous Stable (0.14.0) + uses: mlugg/setup-zig@v2 + with: + version: "0.14.0" + + - name: Build Minimal Example (Zig Stable) + run: zig build -Dandroid=true --verbose + working-directory: examples/minimal + + - name: Build SDL2 Example (Zig Stable) + run: | + zig build -Dandroid=true --verbose + zig build -Dandroid=true -Dcrash-on-exception --verbose + working-directory: examples/sdl2 + # # Nightly Zig Builds # diff --git a/src/androidbuild/builtin_options_update.zig b/src/androidbuild/builtin_options_update.zig index 14187de..8882980 100644 --- a/src/androidbuild/builtin_options_update.zig +++ b/src/androidbuild/builtin_options_update.zig @@ -43,13 +43,9 @@ fn make(step: *Step, _: Build.Step.MakeOptions) !void { const package_name_path = builtin_options_update.package_name_stdout.getPath3(b, step); - // NOTE(jae): 2025-07-23 - // As of Zig 0.15.0-dev.1092+d772c0627, package_name_path.openFile("") is not possible as it assumes you're appending *something* - const file = try package_name_path.root_dir.handle.openFile(package_name_path.sub_path, .{}); - // Read package name from stdout and strip line feed / carriage return // ie. "com.zig.sdl2\n\r" - const package_name_filedata = try file.readToEndAlloc(b.allocator, 8192); + const package_name_filedata = try package_name_path.root_dir.handle.readFileAlloc(b.allocator, package_name_path.sub_path, 8192); const package_name_stripped = std.mem.trimRight(u8, package_name_filedata, " \r\n"); const package_name: [:0]const u8 = try b.allocator.dupeZ(u8, package_name_stripped); From 31ec3e6465d0e32401232a91f0769caceb1cc94b Mon Sep 17 00:00:00 2001 From: Jae B Date: Thu, 11 Sep 2025 11:02:02 +1000 Subject: [PATCH 2/4] fix for cross-compat --- src/androidbuild/builtin_options_update.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/androidbuild/builtin_options_update.zig b/src/androidbuild/builtin_options_update.zig index 8882980..c487c2d 100644 --- a/src/androidbuild/builtin_options_update.zig +++ b/src/androidbuild/builtin_options_update.zig @@ -45,7 +45,9 @@ fn make(step: *Step, _: Build.Step.MakeOptions) !void { // Read package name from stdout and strip line feed / carriage return // ie. "com.zig.sdl2\n\r" - const package_name_filedata = try package_name_path.root_dir.handle.readFileAlloc(b.allocator, package_name_path.sub_path, 8192); + const package_name_backing_buf = try b.allocator.alloc(u8, 8192); + defer b.allocator.free(package_name_backing_buf); + const package_name_filedata = try package_name_path.root_dir.handle.readFile(package_name_path.sub_path, package_name_backing_buf); const package_name_stripped = std.mem.trimRight(u8, package_name_filedata, " \r\n"); const package_name: [:0]const u8 = try b.allocator.dupeZ(u8, package_name_stripped); From ada0b0d22425988746c8de565b0f91b5aff4310d Mon Sep 17 00:00:00 2001 From: Jae B Date: Thu, 11 Sep 2025 11:10:32 +1000 Subject: [PATCH 3/4] fix 0.16.x --- src/android/android.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/android/android.zig b/src/android/android.zig index d2601ea..2f19ed2 100644 --- a/src/android/android.zig +++ b/src/android/android.zig @@ -176,7 +176,7 @@ const AndroidLog = struct { }; } - fn log_each_newline(logger: *AndroidLog, buffer: []const u8) std.io.Writer.Error!usize { + fn log_each_newline(logger: *AndroidLog, buffer: []const u8) std.Io.Writer.Error!usize { var written: usize = 0; var bytes_to_log = buffer; while (std.mem.indexOfScalar(u8, bytes_to_log, '\n')) |newline_pos| { @@ -191,7 +191,7 @@ const AndroidLog = struct { return written; } - fn drain(w: *std.Io.Writer, data: []const []const u8, splat: usize) std.io.Writer.Error!usize { + fn drain(w: *std.Io.Writer, data: []const []const u8, splat: usize) std.Io.Writer.Error!usize { const logger: *AndroidLog = @alignCast(@fieldParentPtr("writer", w)); var written: usize = 0; From db61dbfe20d2f729c101f3fe984700452ec72d13 Mon Sep 17 00:00:00 2001 From: Jae B Date: Thu, 11 Sep 2025 11:20:26 +1000 Subject: [PATCH 4/4] simplify previous stable check --- .github/workflows/ci.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7244691..2f3ee5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,14 +103,12 @@ jobs: with: version: "0.14.0" - - name: Build Minimal Example (Zig Stable) + - name: Build Minimal Example (Zig Previous Stable) run: zig build -Dandroid=true --verbose working-directory: examples/minimal - - name: Build SDL2 Example (Zig Stable) - run: | - zig build -Dandroid=true --verbose - zig build -Dandroid=true -Dcrash-on-exception --verbose + - name: Build SDL2 Example (Zig Previous Stable) + run: zig build -Dandroid=true --verbose working-directory: examples/sdl2 #