Skip to content

Commit cac24b7

Browse files
authored
advance emcc flags (#9)
1 parent 9d3529f commit cac24b7

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

build.zig

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,31 @@ pub fn activateEmsdkStep(b: *std.Build) *std.Build.Step {
8989

9090
pub const EmccFlags = std.StringHashMap(void);
9191

92-
pub fn emccDefaultFlags(allocator: std.mem.Allocator, optimize: std.builtin.OptimizeMode) EmccFlags {
92+
pub fn emccDefaultFlags(allocator: std.mem.Allocator, options: struct {
93+
optimize: std.builtin.OptimizeMode,
94+
fsanitize: bool,
95+
}) EmccFlags {
9396
var args = EmccFlags.init(allocator);
94-
switch (optimize) {
97+
switch (options.optimize) {
9598
.Debug => {
99+
args.put("-O0", {}) catch unreachable;
96100
args.put("-gsource-map", {}) catch unreachable;
101+
if (options.fsanitize)
102+
args.put("-fsanitize=undefined", {}) catch unreachable;
97103
},
98-
.ReleaseSmall, .ReleaseFast => {
104+
.ReleaseSafe => {
99105
args.put("-O3", {}) catch unreachable;
106+
if (options.fsanitize) {
107+
args.put("-fsanitize=undefined", {}) catch unreachable;
108+
args.put("-fsanitize-minimal-runtime", {}) catch unreachable;
109+
}
110+
},
111+
.ReleaseFast => {
112+
args.put("-O3", {}) catch unreachable;
113+
},
114+
.ReleaseSmall => {
115+
args.put("-Oz", {}) catch unreachable;
100116
},
101-
else => {},
102117
}
103118
return args;
104119
}

0 commit comments

Comments
 (0)