diff --git a/lib/std/Build/Configuration.zig b/lib/std/Build/Configuration.zig index 612c3256bb4010ad2dc2458f470d85ff2bcfa86b..2ad1cf4d03dd6d56a2c8f125a66dbf6703758915 100644 --- a/lib/std/Build/Configuration.zig +++ b/lib/std/Build/Configuration.zig @@ -2324,6 +2324,7 @@ pub const TargetQuery = struct { ps3, ps4, ps5, + psp, vita, emscripten, wasi, @@ -2335,18 +2336,105 @@ pub const TargetQuery = struct { opencl, opengl, vulkan, + tios, default, pub fn init(x: ?std.Target.Os.Tag) @This() { - // TODO comptime assert the enums match - return @enumFromInt(@intFromEnum(x orelse return .default)); + return switch (x orelse return .default) { + .freestanding => .freestanding, + .other => .other, + .contiki => .contiki, + .fuchsia => .fuchsia, + .hermit => .hermit, + .managarm => .managarm, + .haiku => .haiku, + .hurd => .hurd, + .illumos => .illumos, + .linux => .linux, + .plan9 => .plan9, + .rtems => .rtems, + .serenity => .serenity, + .dragonfly => .dragonfly, + .freebsd => .freebsd, + .netbsd => .netbsd, + .openbsd => .openbsd, + .driverkit => .driverkit, + .ios => .ios, + .maccatalyst => .maccatalyst, + .macos => .macos, + .tvos => .tvos, + .visionos => .visionos, + .watchos => .watchos, + .windows => .windows, + .uefi => .uefi, + .@"3ds" => .@"3ds", + .ps3 => .ps3, + .ps4 => .ps4, + .ps5 => .ps5, + .psp => .psp, + .vita => .vita, + .emscripten => .emscripten, + .wasi => .wasi, + .amdhsa => .amdhsa, + .amdpal => .amdpal, + .cuda => .cuda, + .mesa3d => .mesa3d, + .nvcl => .nvcl, + .opencl => .opencl, + .opengl => .opengl, + .vulkan => .vulkan, + .tios => .tios, + }; } pub fn unwrap(this: @This()) ?std.Target.Os.Tag { - // TODO comptime assert the enums match - if (this == .default) return null; - return @enumFromInt(@intFromEnum(this)); + return switch (this) { + .default => null, + .freestanding => .freestanding, + .other => .other, + .contiki => .contiki, + .fuchsia => .fuchsia, + .hermit => .hermit, + .managarm => .managarm, + .haiku => .haiku, + .hurd => .hurd, + .illumos => .illumos, + .linux => .linux, + .plan9 => .plan9, + .rtems => .rtems, + .serenity => .serenity, + .dragonfly => .dragonfly, + .freebsd => .freebsd, + .netbsd => .netbsd, + .openbsd => .openbsd, + .driverkit => .driverkit, + .ios => .ios, + .maccatalyst => .maccatalyst, + .macos => .macos, + .tvos => .tvos, + .visionos => .visionos, + .watchos => .watchos, + .windows => .windows, + .uefi => .uefi, + .@"3ds" => .@"3ds", + .ps3 => .ps3, + .ps4 => .ps4, + .ps5 => .ps5, + .psp => .psp, + .vita => .vita, + .emscripten => .emscripten, + .wasi => .wasi, + .amdhsa => .amdhsa, + .amdpal => .amdpal, + .cuda => .cuda, + .mesa3d => .mesa3d, + .nvcl => .nvcl, + .opencl => .opencl, + .opengl => .opengl, + .vulkan => .vulkan, + .tios => .tios, + }; } }; pub const ObjectFormat = enum(u4) {