Commit b2cb8beed9

DrDeano <ed.dean515@gmail.com>
2020-05-16 01:12:22
Add enum to addBuildOptions
1 parent d061e58
Changed files (1)
lib
lib/std/build.zig
@@ -1678,6 +1678,16 @@ pub const LibExeObjStep = struct {
 
     pub fn addBuildOption(self: *LibExeObjStep, comptime T: type, name: []const u8, value: T) void {
         const out = self.build_options_contents.outStream();
+        switch (@typeInfo(T)) {
+            .Enum => |enum_info| {
+                out.print("const {} = enum {{\n", .{@typeName(T)}) catch unreachable;
+                inline for (enum_info.fields) |field| {
+                    out.print("    {},\n", .{ field.name }) catch unreachable;
+                }
+                out.print("}};\n", .{}) catch unreachable;
+            },
+            else => {},
+        }
         out.print("pub const {} = {};\n", .{ name, value }) catch unreachable;
     }