| ... | ... | @@ -1708,15 +1708,34 @@ pub const LibExeObjStep = struct { |
| 1708 | 1708 | |
| 1709 | 1709 | pub fn addBuildOption(self: *LibExeObjStep, comptime T: type, name: []const u8, value: T) void { |
| 1710 | 1710 | const out = self.build_options_contents.outStream(); |
| 1711 | | if (T == []const []const u8) { |
| 1712 | | out.print("pub const {}: []const []const u8 = &[_][]const u8{{\n", .{name}) catch unreachable; |
| 1713 | | for (value) |slice| { |
| 1714 | | out.writeAll(" ") catch unreachable; |
| 1715 | | std.zig.renderStringLiteral(slice, out) catch unreachable; |
| 1716 | | out.writeAll(",\n") catch unreachable; |
| 1717 | | } |
| 1718 | | out.writeAll("};\n") catch unreachable; |
| 1719 | | return; |
| 1711 | switch (T) { |
| 1712 | []const []const u8 => { |
| 1713 | out.print("pub const {}: []const []const u8 = &[_][]const u8{{\n", .{name}) catch unreachable; |
| 1714 | for (value) |slice| { |
| 1715 | out.writeAll(" ") catch unreachable; |
| 1716 | std.zig.renderStringLiteral(slice, out) catch unreachable; |
| 1717 | out.writeAll(",\n") catch unreachable; |
| 1718 | } |
| 1719 | out.writeAll("};\n") catch unreachable; |
| 1720 | return; |
| 1721 | }, |
| 1722 | []const u8 => { |
| 1723 | out.print("pub const {}: []const u8 = ", .{name}) catch unreachable; |
| 1724 | std.zig.renderStringLiteral(value, out) catch unreachable; |
| 1725 | out.writeAll(";\n") catch unreachable; |
| 1726 | return; |
| 1727 | }, |
| 1728 | ?[]const u8 => { |
| 1729 | out.print("pub const {}: ?[]const u8 = ", .{name}) catch unreachable; |
| 1730 | if (value) |payload| { |
| 1731 | std.zig.renderStringLiteral(payload, out) catch unreachable; |
| 1732 | out.writeAll(";\n") catch unreachable; |
| 1733 | } else { |
| 1734 | out.writeAll("null;\n") catch unreachable; |
| 1735 | } |
| 1736 | return; |
| 1737 | }, |
| 1738 | else => {}, |
| 1720 | 1739 | } |
| 1721 | 1740 | switch (@typeInfo(T)) { |
| 1722 | 1741 | .Enum => |enum_info| { |