aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorDrDeano <ed.dean515@gmail.com>2020-05-16 00:12:22 +0100
committerDrDeano <ed.dean515@gmail.com>2020-05-16 15:35:42 +0100
commitb2cb8beed944aa74fba99fd1884dbb625987c9a0 (patch)
treec1355383536692d8e8d90e8d56e5bbec274fc419 /lib/std
parentd061e5854a0891a3d4290183aa4f9d033d10d8c2 (diff)
downloadzig-b2cb8beed944aa74fba99fd1884dbb625987c9a0.tar.gz
zig-b2cb8beed944aa74fba99fd1884dbb625987c9a0.zip
Add enum to addBuildOptions
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/build.zig10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/std/build.zig b/lib/std/build.zig
index 67f2af1047..f3e132a6e1 100644
--- a/lib/std/build.zig
+++ b/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;
}