| ... | @@ -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; |
| 772 | | 772 | |
| 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 orelse | 822 | 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 | \\ console | 868 | \\ console |
| 865 | \\ windows | 869 | \\ windows |
| 866 | \\ posix | 870 | \\ 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++ until | 947 | // 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") or | 955 | } else if (mem.eql(u8, arg, "-D") or |
| 938 | mem.eql(u8, arg, "-isystem") or | 956 | mem.eql(u8, arg, "-isystem") or |
| 939 | mem.eql(u8, arg, "-I") or | 957 | mem.eql(u8, arg, "-I") or |
| ... | @@ -942,29 +960,34 @@ fn buildOutputType( | ... | @@ -942,29 +960,34 @@ fn buildOutputType( |
| 942 | mem.eql(u8, arg, "-iframework") or | 960 | 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")) { |