authorgravatar for stephen@hexops.comStephen Gutekanst <stephen@hexops.com> 2022-02-21 12:51:23-07:00
committergravatar for stephen@hexops.comStephen Gutekanst <stephen@hexops.com> 2022-02-21 12:52:10-07:00
logfb61db1ee40e08e939613dc8448ac619a05bf91d
treefcd7cf4db42105721a91d78b70592b3fee6b83b6
parent2bd10f4db98fd313c6743477ad36b139652a8dd5

zig build: use orelse to fetch next argument

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>

1 files changed, 149 insertions(+), 115 deletions(-)

src/main.zig+149-115
...@@ -770,7 +770,7 @@ fn buildOutputType(...@@ -770,7 +770,7 @@ fn buildOutputType(
770 _ = process_args_iter.skip(); // e.g. "build-lib"770 _ = process_args_iter.skip(); // e.g. "build-lib"
771 var resp_file_args_iter: ?ArgIteratorResponseFile = null;771 var resp_file_args_iter: ?ArgIteratorResponseFile = null;
772772
773 var getNextArg = (struct {773 const getNextArg = (struct {
774 pub fn getNextArg(_process_args_iter: *process.ArgIterator, maybe_resp_file_args_iter: *?ArgIteratorResponseFile) ?[:0]const u8 {774 pub fn getNextArg(_process_args_iter: *process.ArgIterator, maybe_resp_file_args_iter: *?ArgIteratorResponseFile) ?[:0]const u8 {
775 if (_process_args_iter.next()) |proc_arg| return proc_arg;775 if (_process_args_iter.next()) |proc_arg| return proc_arg;
776 if (maybe_resp_file_args_iter.*) |*iter| return iter.next();776 if (maybe_resp_file_args_iter.*) |*iter| return iter.next();
...@@ -822,45 +822,49 @@ fn buildOutputType(...@@ -822,45 +822,49 @@ fn buildOutputType(
822 cur_pkg = cur_pkg.parent orelse822 cur_pkg = cur_pkg.parent orelse
823 fatal("encountered --pkg-end with no matching --pkg-begin", .{});823 fatal("encountered --pkg-end with no matching --pkg-begin", .{});
824 } else if (mem.eql(u8, arg, "--main-pkg-path")) {824 } else if (mem.eql(u8, arg, "--main-pkg-path")) {
825 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);825 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
826 if (next_arg == null) fatal("expected parameter after {s}", .{arg});826 fatal("expected parameter after {s}", .{arg});
827 main_pkg_path = next_arg.?;827 };
828 main_pkg_path = next_arg;
828 } else if (mem.eql(u8, arg, "-cflags")) {829 } else if (mem.eql(u8, arg, "-cflags")) {
829 extra_cflags.shrinkRetainingCapacity(0);830 extra_cflags.shrinkRetainingCapacity(0);
830 while (true) {831 while (true) {
831 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);832 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
832 if (next_arg == null) fatal("expected -- after -cflags", .{});833 fatal("expected -- after -cflags", .{});
833 if (mem.eql(u8, next_arg.?, "--")) break;834 };
834 try extra_cflags.append(next_arg.?);835 if (mem.eql(u8, next_arg, "--")) break;
836 try extra_cflags.append(next_arg);
835 }837 }
836 } else if (mem.eql(u8, arg, "--color")) {838 } else if (mem.eql(u8, arg, "--color")) {
837 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);839 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
838 if (next_arg == null) fatal("expected [auto|on|off] after --color", .{});840 fatal("expected [auto|on|off] after --color", .{});
839 color = std.meta.stringToEnum(Color, next_arg.?) orelse {841 };
840 fatal("expected [auto|on|off] after --color, found '{s}'", .{next_arg.?});842 color = std.meta.stringToEnum(Color, next_arg) orelse {
843 fatal("expected [auto|on|off] after --color, found '{s}'", .{next_arg});
841 };844 };
842 } else if (mem.eql(u8, arg, "--subsystem")) {845 } else if (mem.eql(u8, arg, "--subsystem")) {
843 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);846 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
844 if (next_arg == null) fatal("expected parameter after {s}", .{arg});847 fatal("expected parameter after {s}", .{arg});
845 if (mem.eql(u8, next_arg.?, "console")) {848 };
849 if (mem.eql(u8, next_arg, "console")) {
846 subsystem = .Console;850 subsystem = .Console;
847 } else if (mem.eql(u8, next_arg.?, "windows")) {851 } else if (mem.eql(u8, next_arg, "windows")) {
848 subsystem = .Windows;852 subsystem = .Windows;
849 } else if (mem.eql(u8, next_arg.?, "posix")) {853 } else if (mem.eql(u8, next_arg, "posix")) {
850 subsystem = .Posix;854 subsystem = .Posix;
851 } else if (mem.eql(u8, next_arg.?, "native")) {855 } else if (mem.eql(u8, next_arg, "native")) {
852 subsystem = .Native;856 subsystem = .Native;
853 } else if (mem.eql(u8, next_arg.?, "efi_application")) {857 } else if (mem.eql(u8, next_arg, "efi_application")) {
854 subsystem = .EfiApplication;858 subsystem = .EfiApplication;
855 } else if (mem.eql(u8, next_arg.?, "efi_boot_service_driver")) {859 } else if (mem.eql(u8, next_arg, "efi_boot_service_driver")) {
856 subsystem = .EfiBootServiceDriver;860 subsystem = .EfiBootServiceDriver;
857 } else if (mem.eql(u8, next_arg.?, "efi_rom")) {861 } else if (mem.eql(u8, next_arg, "efi_rom")) {
858 subsystem = .EfiRom;862 subsystem = .EfiRom;
859 } else if (mem.eql(u8, next_arg.?, "efi_runtime_driver")) {863 } else if (mem.eql(u8, next_arg, "efi_runtime_driver")) {
860 subsystem = .EfiRuntimeDriver;864 subsystem = .EfiRuntimeDriver;
861 } else {865 } else {
862 fatal("invalid: --subsystem: '{s}'. Options are:\n{s}", .{866 fatal("invalid: --subsystem: '{s}'. Options are:\n{s}", .{
863 next_arg.?,867 next_arg,
864 \\ console868 \\ console
865 \\ windows869 \\ windows
866 \\ posix870 \\ posix
...@@ -873,67 +877,81 @@ fn buildOutputType(...@@ -873,67 +877,81 @@ fn buildOutputType(
873 });877 });
874 }878 }
875 } else if (mem.eql(u8, arg, "-O")) {879 } else if (mem.eql(u8, arg, "-O")) {
876 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);880 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
877 if (next_arg == null) fatal("expected parameter after {s}", .{arg});881 fatal("expected parameter after {s}", .{arg});
878 optimize_mode_string = next_arg.?;882 };
883 optimize_mode_string = next_arg;
879 } else if (mem.eql(u8, arg, "--entry")) {884 } else if (mem.eql(u8, arg, "--entry")) {
880 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);885 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
881 if (next_arg == null) fatal("expected parameter after {s}", .{arg});886 fatal("expected parameter after {s}", .{arg});
882 entry = next_arg.?;887 };
888 entry = next_arg;
883 } else if (mem.eql(u8, arg, "--stack")) {889 } else if (mem.eql(u8, arg, "--stack")) {
884 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);890 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
885 if (next_arg == null) fatal("expected parameter after {s}", .{arg});891 fatal("expected parameter after {s}", .{arg});
886 stack_size_override = std.fmt.parseUnsigned(u64, next_arg.?, 0) catch |err| {892 };
893 stack_size_override = std.fmt.parseUnsigned(u64, next_arg, 0) catch |err| {
887 fatal("unable to parse '{s}': {s}", .{ arg, @errorName(err) });894 fatal("unable to parse '{s}': {s}", .{ arg, @errorName(err) });
888 };895 };
889 } else if (mem.eql(u8, arg, "--image-base")) {896 } else if (mem.eql(u8, arg, "--image-base")) {
890 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);897 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
891 if (next_arg == null) fatal("expected parameter after {s}", .{arg});898 fatal("expected parameter after {s}", .{arg});
892 image_base_override = std.fmt.parseUnsigned(u64, next_arg.?, 0) catch |err| {899 };
900 image_base_override = std.fmt.parseUnsigned(u64, next_arg, 0) catch |err| {
893 fatal("unable to parse '{s}': {s}", .{ arg, @errorName(err) });901 fatal("unable to parse '{s}': {s}", .{ arg, @errorName(err) });
894 };902 };
895 } else if (mem.eql(u8, arg, "--name")) {903 } else if (mem.eql(u8, arg, "--name")) {
896 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);904 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
897 if (next_arg == null) fatal("expected parameter after {s}", .{arg});905 fatal("expected parameter after {s}", .{arg});
898 provided_name = next_arg.?;906 };
907 provided_name = next_arg;
899 } else if (mem.eql(u8, arg, "-rpath")) {908 } else if (mem.eql(u8, arg, "-rpath")) {
900 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);909 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
901 if (next_arg == null) fatal("expected parameter after {s}", .{arg});910 fatal("expected parameter after {s}", .{arg});
902 try rpath_list.append(next_arg.?);911 };
912 try rpath_list.append(next_arg);
903 } else if (mem.eql(u8, arg, "--library-directory") or mem.eql(u8, arg, "-L")) {913 } else if (mem.eql(u8, arg, "--library-directory") or mem.eql(u8, arg, "-L")) {
904 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);914 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
905 if (next_arg == null) fatal("expected parameter after {s}", .{arg});915 fatal("expected parameter after {s}", .{arg});
906 try lib_dirs.append(next_arg.?);916 };
917 try lib_dirs.append(next_arg);
907 } else if (mem.eql(u8, arg, "-F")) {918 } else if (mem.eql(u8, arg, "-F")) {
908 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);919 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
909 if (next_arg == null) fatal("expected parameter after {s}", .{arg});920 fatal("expected parameter after {s}", .{arg});
910 try framework_dirs.append(next_arg.?);921 };
922 try framework_dirs.append(next_arg);
911 } else if (mem.eql(u8, arg, "-framework")) {923 } else if (mem.eql(u8, arg, "-framework")) {
912 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);924 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
913 if (next_arg == null) fatal("expected parameter after {s}", .{arg});925 fatal("expected parameter after {s}", .{arg});
914 try frameworks.append(next_arg.?);926 };
927 try frameworks.append(next_arg);
915 } else if (mem.eql(u8, arg, "-install_name")) {928 } else if (mem.eql(u8, arg, "-install_name")) {
916 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);929 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
917 if (next_arg == null) fatal("expected parameter after {s}", .{arg});930 fatal("expected parameter after {s}", .{arg});
918 install_name = next_arg.?;931 };
932 install_name = next_arg;
919 } else if (mem.eql(u8, arg, "-T") or mem.eql(u8, arg, "--script")) {933 } else if (mem.eql(u8, arg, "-T") or mem.eql(u8, arg, "--script")) {
920 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);934 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
921 if (next_arg == null) fatal("expected parameter after {s}", .{arg});935 fatal("expected parameter after {s}", .{arg});
922 linker_script = next_arg.?;936 };
937 linker_script = next_arg;
923 } else if (mem.eql(u8, arg, "--version-script")) {938 } else if (mem.eql(u8, arg, "--version-script")) {
924 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);939 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
925 if (next_arg == null) fatal("expected parameter after {s}", .{arg});940 fatal("expected parameter after {s}", .{arg});
926 version_script = next_arg.?;941 };
942 version_script = next_arg;
927 } else if (mem.eql(u8, arg, "--library") or mem.eql(u8, arg, "-l")) {943 } else if (mem.eql(u8, arg, "--library") or mem.eql(u8, arg, "-l")) {
928 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);944 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
929 if (next_arg == null) fatal("expected parameter after {s}", .{arg});945 fatal("expected parameter after {s}", .{arg});
946 };
930 // We don't know whether this library is part of libc or libc++ until947 // We don't know whether this library is part of libc or libc++ until
931 // we resolve the target, so we simply append to the list for now.948 // we resolve the target, so we simply append to the list for now.
932 try system_libs.put(next_arg.?, .{ .needed = false });949 try system_libs.put(next_arg, .{ .needed = false });
933 } else if (mem.eql(u8, arg, "--needed-library") or mem.eql(u8, arg, "-needed-l")) {950 } else if (mem.eql(u8, arg, "--needed-library") or mem.eql(u8, arg, "-needed-l")) {
934 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);951 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
935 if (next_arg == null) fatal("expected parameter after {s}", .{arg});952 fatal("expected parameter after {s}", .{arg});
936 try system_libs.put(next_arg.?, .{ .needed = true });953 };
954 try system_libs.put(next_arg, .{ .needed = true });
937 } else if (mem.eql(u8, arg, "-D") or955 } else if (mem.eql(u8, arg, "-D") or
938 mem.eql(u8, arg, "-isystem") or956 mem.eql(u8, arg, "-isystem") or
939 mem.eql(u8, arg, "-I") or957 mem.eql(u8, arg, "-I") or
...@@ -942,29 +960,34 @@ fn buildOutputType(...@@ -942,29 +960,34 @@ fn buildOutputType(
942 mem.eql(u8, arg, "-iframework") or960 mem.eql(u8, arg, "-iframework") or
943 mem.eql(u8, arg, "-iframeworkwithsysroot"))961 mem.eql(u8, arg, "-iframeworkwithsysroot"))
944 {962 {
945 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);963 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
946 if (next_arg == null) fatal("expected parameter after {s}", .{arg});964 fatal("expected parameter after {s}", .{arg});
965 };
947 try clang_argv.append(arg);966 try clang_argv.append(arg);
948 try clang_argv.append(next_arg.?);967 try clang_argv.append(next_arg);
949 } else if (mem.eql(u8, arg, "--version")) {968 } else if (mem.eql(u8, arg, "--version")) {
950 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);969 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
951 if (next_arg == null) fatal("expected parameter after --version", .{});970 fatal("expected parameter after {s}", .{arg});
952 version = std.builtin.Version.parse(next_arg.?) catch |err| {971 };
953 fatal("unable to parse --version '{s}': {s}", .{ next_arg.?, @errorName(err) });972 version = std.builtin.Version.parse(next_arg) catch |err| {
973 fatal("unable to parse --version '{s}': {s}", .{ next_arg, @errorName(err) });
954 };974 };
955 have_version = true;975 have_version = true;
956 } else if (mem.eql(u8, arg, "-target")) {976 } else if (mem.eql(u8, arg, "-target")) {
957 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);977 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
958 if (next_arg == null) fatal("expected parameter after {s}", .{arg});978 fatal("expected parameter after {s}", .{arg});
959 target_arch_os_abi = next_arg.?;979 };
980 target_arch_os_abi = next_arg;
960 } else if (mem.eql(u8, arg, "-mcpu")) {981 } else if (mem.eql(u8, arg, "-mcpu")) {
961 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);982 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
962 if (next_arg == null) fatal("expected parameter after {s}", .{arg});983 fatal("expected parameter after {s}", .{arg});
963 target_mcpu = next_arg.?;984 };
985 target_mcpu = next_arg;
964 } else if (mem.eql(u8, arg, "-mcmodel")) {986 } else if (mem.eql(u8, arg, "-mcmodel")) {
965 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);987 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
966 if (next_arg == null) fatal("expected parameter after {s}", .{arg});988 fatal("expected parameter after {s}", .{arg});
967 machine_code_model = parseCodeModel(next_arg.?);989 };
990 machine_code_model = parseCodeModel(next_arg);
968 } else if (mem.startsWith(u8, arg, "-ofmt=")) {991 } else if (mem.startsWith(u8, arg, "-ofmt=")) {
969 target_ofmt = arg["-ofmt=".len..];992 target_ofmt = arg["-ofmt=".len..];
970 } else if (mem.startsWith(u8, arg, "-mcpu=")) {993 } else if (mem.startsWith(u8, arg, "-mcpu=")) {
...@@ -974,50 +997,60 @@ fn buildOutputType(...@@ -974,50 +997,60 @@ fn buildOutputType(
974 } else if (mem.startsWith(u8, arg, "-O")) {997 } else if (mem.startsWith(u8, arg, "-O")) {
975 optimize_mode_string = arg["-O".len..];998 optimize_mode_string = arg["-O".len..];
976 } else if (mem.eql(u8, arg, "--dynamic-linker")) {999 } else if (mem.eql(u8, arg, "--dynamic-linker")) {
977 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1000 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
978 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1001 fatal("expected parameter after {s}", .{arg});
979 target_dynamic_linker = next_arg.?;1002 };
1003 target_dynamic_linker = next_arg;
980 } else if (mem.eql(u8, arg, "--sysroot")) {1004 } else if (mem.eql(u8, arg, "--sysroot")) {
981 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1005 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
982 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1006 fatal("expected parameter after {s}", .{arg});
983 sysroot = next_arg.?;1007 };
1008 sysroot = next_arg;
984 try clang_argv.append("-isysroot");1009 try clang_argv.append("-isysroot");
985 try clang_argv.append(next_arg.?);1010 try clang_argv.append(next_arg);
986 } else if (mem.eql(u8, arg, "--libc")) {1011 } else if (mem.eql(u8, arg, "--libc")) {
987 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1012 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
988 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1013 fatal("expected parameter after {s}", .{arg});
989 libc_paths_file = next_arg.?;1014 };
1015 libc_paths_file = next_arg;
990 } else if (mem.eql(u8, arg, "--test-filter")) {1016 } else if (mem.eql(u8, arg, "--test-filter")) {
991 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1017 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
992 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1018 fatal("expected parameter after {s}", .{arg});
993 test_filter = next_arg.?;1019 };
1020 test_filter = next_arg;
994 } else if (mem.eql(u8, arg, "--test-name-prefix")) {1021 } else if (mem.eql(u8, arg, "--test-name-prefix")) {
995 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1022 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
996 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1023 fatal("expected parameter after {s}", .{arg});
997 test_name_prefix = next_arg.?;1024 };
1025 test_name_prefix = next_arg;
998 } else if (mem.eql(u8, arg, "--test-cmd")) {1026 } else if (mem.eql(u8, arg, "--test-cmd")) {
999 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1027 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1000 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1028 fatal("expected parameter after {s}", .{arg});
1001 try test_exec_args.append(next_arg.?);1029 };
1030 try test_exec_args.append(next_arg);
1002 } else if (mem.eql(u8, arg, "--cache-dir")) {1031 } else if (mem.eql(u8, arg, "--cache-dir")) {
1003 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1032 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1004 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1033 fatal("expected parameter after {s}", .{arg});
1005 override_local_cache_dir = next_arg.?;1034 };
1035 override_local_cache_dir = next_arg;
1006 } else if (mem.eql(u8, arg, "--global-cache-dir")) {1036 } else if (mem.eql(u8, arg, "--global-cache-dir")) {
1007 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1037 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1008 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1038 fatal("expected parameter after {s}", .{arg});
1009 override_global_cache_dir = next_arg.?;1039 };
1040 override_global_cache_dir = next_arg;
1010 } else if (mem.eql(u8, arg, "--zig-lib-dir")) {1041 } else if (mem.eql(u8, arg, "--zig-lib-dir")) {
1011 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1042 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1012 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1043 fatal("expected parameter after {s}", .{arg});
1013 override_lib_dir = next_arg.?;1044 };
1045 override_lib_dir = next_arg;
1014 } else if (mem.eql(u8, arg, "--debug-log")) {1046 } else if (mem.eql(u8, arg, "--debug-log")) {
1015 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1047 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1016 if (next_arg == null) fatal("expected parameter after {s}", .{arg});1048 fatal("expected parameter after {s}", .{arg});
1049 };
1017 if (!build_options.enable_logging) {1050 if (!build_options.enable_logging) {
1018 std.log.warn("Zig was compiled without logging enabled (-Dlog). --debug-log has no effect.", .{});1051 std.log.warn("Zig was compiled without logging enabled (-Dlog). --debug-log has no effect.", .{});
1019 } else {1052 } else {
1020 try log_scopes.append(gpa, next_arg.?);1053 try log_scopes.append(gpa, next_arg);
1021 }1054 }
1022 } else if (mem.eql(u8, arg, "--debug-link-snapshot")) {1055 } else if (mem.eql(u8, arg, "--debug-link-snapshot")) {
1023 if (!build_options.enable_link_snapshots) {1056 if (!build_options.enable_link_snapshots) {
...@@ -1190,9 +1223,10 @@ fn buildOutputType(...@@ -1190,9 +1223,10 @@ fn buildOutputType(
1190 } else if (mem.eql(u8, arg, "-fno-allow-shlib-undefined")) {1223 } else if (mem.eql(u8, arg, "-fno-allow-shlib-undefined")) {
1191 linker_allow_shlib_undefined = false;1224 linker_allow_shlib_undefined = false;
1192 } else if (mem.eql(u8, arg, "-z")) {1225 } else if (mem.eql(u8, arg, "-z")) {
1193 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter);1226 const next_arg = getNextArg(&process_args_iter, &resp_file_args_iter) orelse {
1194 if (next_arg == null) fatal("expected linker extension flag after '{s}'", .{arg});1227 fatal("expected parameter after {s}", .{arg});
1195 const z_arg = next_arg.?;1228 };
1229 const z_arg = next_arg;
1196 if (mem.eql(u8, z_arg, "nodelete")) {1230 if (mem.eql(u8, z_arg, "nodelete")) {
1197 linker_z_nodelete = true;1231 linker_z_nodelete = true;
1198 } else if (mem.eql(u8, z_arg, "notext")) {1232 } else if (mem.eql(u8, z_arg, "notext")) {