Function appendZigProcessFlags [src]

Prototype

pub fn appendZigProcessFlags( m: *Module, zig_args: *std.ArrayList([]const u8), asking_step: ?*Step, ) !void

Parameters

m: *Modulezig_args: *std.ArrayList([]const u8)asking_step: ?*Step

Source

pub fn appendZigProcessFlags( m: *Module, zig_args: *std.ArrayList([]const u8), asking_step: ?*Step, ) !void { const b = m.owner; try addFlag(zig_args, m.strip, "-fstrip", "-fno-strip"); try addFlag(zig_args, m.single_threaded, "-fsingle-threaded", "-fno-single-threaded"); try addFlag(zig_args, m.stack_check, "-fstack-check", "-fno-stack-check"); try addFlag(zig_args, m.stack_protector, "-fstack-protector", "-fno-stack-protector"); try addFlag(zig_args, m.omit_frame_pointer, "-fomit-frame-pointer", "-fno-omit-frame-pointer"); try addFlag(zig_args, m.error_tracing, "-ferror-tracing", "-fno-error-tracing"); try addFlag(zig_args, m.sanitize_c, "-fsanitize-c", "-fno-sanitize-c"); try addFlag(zig_args, m.sanitize_thread, "-fsanitize-thread", "-fno-sanitize-thread"); try addFlag(zig_args, m.fuzz, "-ffuzz", "-fno-fuzz"); try addFlag(zig_args, m.valgrind, "-fvalgrind", "-fno-valgrind"); try addFlag(zig_args, m.pic, "-fPIC", "-fno-PIC"); try addFlag(zig_args, m.red_zone, "-mred-zone", "-mno-red-zone"); if (m.dwarf_format) |dwarf_format| { try zig_args.append(switch (dwarf_format) { .@"32" => "-gdwarf32", .@"64" => "-gdwarf64", }); } if (m.unwind_tables) |unwind_tables| { try zig_args.append(switch (unwind_tables) { .none => "-fno-unwind-tables", .sync => "-funwind-tables", .@"async" => "-fasync-unwind-tables", }); } try zig_args.ensureUnusedCapacity(1); if (m.optimize) |optimize| switch (optimize) { .Debug => zig_args.appendAssumeCapacity("-ODebug"), .ReleaseSmall => zig_args.appendAssumeCapacity("-OReleaseSmall"), .ReleaseFast => zig_args.appendAssumeCapacity("-OReleaseFast"), .ReleaseSafe => zig_args.appendAssumeCapacity("-OReleaseSafe"), }; if (m.code_model != .default) { try zig_args.append("-mcmodel"); try zig_args.append(@tagName(m.code_model)); } if (m.resolved_target) |*target| { // Communicate the query via CLI since it's more compact. if (!target.query.isNative()) { try zig_args.appendSlice(&.{ "-target", try target.query.zigTriple(b.allocator), "-mcpu", try target.query.serializeCpuAlloc(b.allocator), }); if (target.query.dynamic_linker.get()) |dynamic_linker| { try zig_args.append("--dynamic-linker"); try zig_args.append(dynamic_linker); } } } for (m.export_symbol_names) |symbol_name| { try zig_args.append(b.fmt("--export={s}", .{symbol_name})); } for (m.include_dirs.items) |include_dir| { try include_dir.appendZigProcessFlags(b, zig_args, asking_step); } try zig_args.appendSlice(m.c_macros.items); try zig_args.ensureUnusedCapacity(2 * m.lib_paths.items.len); for (m.lib_paths.items) |lib_path| { zig_args.appendAssumeCapacity("-L"); zig_args.appendAssumeCapacity(lib_path.getPath2(b, asking_step)); } try zig_args.ensureUnusedCapacity(2 * m.rpaths.items.len); for (m.rpaths.items) |rpath| switch (rpath) { .lazy_path => |lp| { zig_args.appendAssumeCapacity("-rpath"); zig_args.appendAssumeCapacity(lp.getPath2(b, asking_step)); }, .special => |bytes| { zig_args.appendAssumeCapacity("-rpath"); zig_args.appendAssumeCapacity(bytes); }, }; }