@@ -893,7 +893,7 @@ fn buildOutputType(
893893 var override_global_cache_dir : ? []const u8 = try EnvVar .ZIG_GLOBAL_CACHE_DIR .get (arena );
894894 var override_lib_dir : ? []const u8 = try EnvVar .ZIG_LIB_DIR .get (arena );
895895 var clang_preprocessor_mode : Compilation.ClangPreprocessorMode = .no ;
896- var subsystem : ? std.Target.SubSystem = null ;
896+ var subsystem : ? std.zig.Subsystem = null ;
897897 var major_subsystem_version : ? u16 = null ;
898898 var minor_subsystem_version : ? u16 = null ;
899899 var mingw_unicode_entry_point : bool = false ;
@@ -1135,7 +1135,7 @@ fn buildOutputType(
11351135 }
11361136 n_jobs = num ;
11371137 } else if (mem .eql (u8 , arg , "--subsystem" )) {
1138- subsystem = try parseSubSystem (args_iter .nextOrFatal ());
1138+ subsystem = try parseSubsystem (args_iter .nextOrFatal ());
11391139 } else if (mem .eql (u8 , arg , "-O" )) {
11401140 mod_opts .optimize_mode = parseOptimizeMode (args_iter .nextOrFatal ());
11411141 } else if (mem .cutPrefix (u8 , arg , "-fentry=" )) | rest | {
@@ -2415,7 +2415,7 @@ fn buildOutputType(
24152415 } else if (mem .eql (u8 , arg , "-rpath" ) or mem .eql (u8 , arg , "--rpath" ) or mem .eql (u8 , arg , "-R" )) {
24162416 try create_module .rpath_list .append (arena , linker_args_it .nextOrFatal ());
24172417 } else if (mem .eql (u8 , arg , "--subsystem" )) {
2418- subsystem = try parseSubSystem (linker_args_it .nextOrFatal ());
2418+ subsystem = try parseSubsystem (linker_args_it .nextOrFatal ());
24192419 } else if (mem .eql (u8 , arg , "-I" ) or
24202420 mem .eql (u8 , arg , "--dynamic-linker" ) or
24212421 mem .eql (u8 , arg , "-dynamic-linker" ))
@@ -2743,7 +2743,7 @@ fn buildOutputType(
27432743 try symbol_wrap_set .put (arena , next_arg , {});
27442744 } else if (mem .startsWith (u8 , arg , "/subsystem:" )) {
27452745 var split_it = mem .splitBackwardsScalar (u8 , arg , ':' );
2746- subsystem = try parseSubSystem (split_it .first ());
2746+ subsystem = try parseSubsystem (split_it .first ());
27472747 } else if (mem .startsWith (u8 , arg , "/implib:" )) {
27482748 var split_it = mem .splitBackwardsScalar (u8 , arg , ':' );
27492749 emit_implib = .{ .yes = split_it .first () };
@@ -6657,26 +6657,10 @@ fn warnAboutForeignBinaries(
66576657 }
66586658}
66596659
6660- fn parseSubSystem (next_arg : []const u8 ) ! std.Target.SubSystem {
6661- if (mem .eql (u8 , next_arg , "console" )) {
6662- return .Console ;
6663- } else if (mem .eql (u8 , next_arg , "windows" )) {
6664- return .Windows ;
6665- } else if (mem .eql (u8 , next_arg , "posix" )) {
6666- return .Posix ;
6667- } else if (mem .eql (u8 , next_arg , "native" )) {
6668- return .Native ;
6669- } else if (mem .eql (u8 , next_arg , "efi_application" )) {
6670- return .EfiApplication ;
6671- } else if (mem .eql (u8 , next_arg , "efi_boot_service_driver" )) {
6672- return .EfiBootServiceDriver ;
6673- } else if (mem .eql (u8 , next_arg , "efi_rom" )) {
6674- return .EfiRom ;
6675- } else if (mem .eql (u8 , next_arg , "efi_runtime_driver" )) {
6676- return .EfiRuntimeDriver ;
6677- } else {
6660+ fn parseSubsystem (arg : []const u8 ) ! std.zig.Subsystem {
6661+ return std .meta .stringToEnum (std .zig .Subsystem , arg ) orelse
66786662 fatal ("invalid: --subsystem: '{s}'. Options are:\n {s}" , .{
6679- next_arg ,
6663+ arg ,
66806664 \\ console
66816665 \\ windows
66826666 \\ posix
@@ -6687,7 +6671,6 @@ fn parseSubSystem(next_arg: []const u8) !std.Target.SubSystem {
66876671 \\ efi_runtime_driver
66886672 \\
66896673 });
6690- }
66916674}
66926675
66936676/// Model a header searchlist as a group.
0 commit comments