| ... | @@ -1678,6 +1678,16 @@ pub const LibExeObjStep = struct { | ... | @@ -1678,6 +1678,16 @@ pub const LibExeObjStep = struct { |
| 1678 | | 1678 | |
| 1679 | pub fn addBuildOption(self: *LibExeObjStep, comptime T: type, name: []const u8, value: T) void { | 1679 | pub fn addBuildOption(self: *LibExeObjStep, comptime T: type, name: []const u8, value: T) void { |
| 1680 | const out = self.build_options_contents.outStream(); | 1680 | const out = self.build_options_contents.outStream(); |
| | 1681 | switch (@typeInfo(T)) { |
| | 1682 | .Enum => |enum_info| { |
| | 1683 | out.print("const {} = enum {{\n", .{@typeName(T)}) catch unreachable; |
| | 1684 | inline for (enum_info.fields) |field| { |
| | 1685 | out.print(" {},\n", .{ field.name }) catch unreachable; |
| | 1686 | } |
| | 1687 | out.print("}};\n", .{}) catch unreachable; |
| | 1688 | }, |
| | 1689 | else => {}, |
| | 1690 | } |
| 1681 | out.print("pub const {} = {};\n", .{ name, value }) catch unreachable; | 1691 | out.print("pub const {} = {};\n", .{ name, value }) catch unreachable; |
| 1682 | } | 1692 | } |
| 1683 | | 1693 | |