From 438569108bfd3b1e004260cd65ad544866e00bbf Mon Sep 17 00:00:00 2001 From: vkensou Date: Sat, 5 Apr 2025 12:34:51 +0800 Subject: [PATCH] advance emcc flags --- build.zig | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/build.zig b/build.zig index a8d6211..27d7136 100644 --- a/build.zig +++ b/build.zig @@ -89,16 +89,31 @@ pub fn activateEmsdkStep(b: *std.Build) *std.Build.Step { pub const EmccFlags = std.StringHashMap(void); -pub fn emccDefaultFlags(allocator: std.mem.Allocator, optimize: std.builtin.OptimizeMode) EmccFlags { +pub fn emccDefaultFlags(allocator: std.mem.Allocator, options: struct { + optimize: std.builtin.OptimizeMode, + fsanitize: bool, +}) EmccFlags { var args = EmccFlags.init(allocator); - switch (optimize) { + switch (options.optimize) { .Debug => { + args.put("-O0", {}) catch unreachable; args.put("-gsource-map", {}) catch unreachable; + if (options.fsanitize) + args.put("-fsanitize=undefined", {}) catch unreachable; }, - .ReleaseSmall, .ReleaseFast => { + .ReleaseSafe => { args.put("-O3", {}) catch unreachable; + if (options.fsanitize) { + args.put("-fsanitize=undefined", {}) catch unreachable; + args.put("-fsanitize-minimal-runtime", {}) catch unreachable; + } + }, + .ReleaseFast => { + args.put("-O3", {}) catch unreachable; + }, + .ReleaseSmall => { + args.put("-Oz", {}) catch unreachable; }, - else => {}, } return args; }