mirror of
https://github.com/ziglang/zig.git
synced 2026-02-15 13:58:27 +00:00
better CLI error message for missing sub-architecture
This commit is contained in:
parent
3c914c63a5
commit
516b5e649f
16
src/main.cpp
16
src/main.cpp
@ -913,8 +913,20 @@ int main(int argc, char **argv) {
|
||||
get_native_target(&target);
|
||||
} else {
|
||||
if ((err = target_parse_triple(&target, target_string))) {
|
||||
fprintf(stderr, "invalid target: %s\n", err_str(err));
|
||||
return print_error_usage(arg0);
|
||||
if (err == ErrorUnknownArchitecture && target.arch != ZigLLVM_UnknownArch) {
|
||||
fprintf(stderr, "'%s' requires a sub-architecture. Try one of these:\n",
|
||||
target_arch_name(target.arch));
|
||||
SubArchList sub_arch_list = target_subarch_list(target.arch);
|
||||
size_t subarch_count = target_subarch_count(sub_arch_list);
|
||||
for (size_t sub_i = 0; sub_i < subarch_count; sub_i += 1) {
|
||||
ZigLLVM_SubArchType sub = target_subarch_enum(sub_arch_list, sub_i);
|
||||
fprintf(stderr, " %s%s\n", target_arch_name(target.arch), target_subarch_name(sub));
|
||||
}
|
||||
return print_error_usage(arg0);
|
||||
} else {
|
||||
fprintf(stderr, "invalid target: %s\n", err_str(err));
|
||||
return print_error_usage(arg0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -486,17 +486,17 @@ void get_native_target(ZigTarget *target) {
|
||||
Error target_parse_archsub(ZigLLVM_ArchType *out_arch, ZigLLVM_SubArchType *out_sub,
|
||||
const char *archsub_ptr, size_t archsub_len)
|
||||
{
|
||||
*out_arch = ZigLLVM_UnknownArch;
|
||||
*out_sub = ZigLLVM_NoSubArch;
|
||||
for (size_t arch_i = 0; arch_i < array_length(arch_list); arch_i += 1) {
|
||||
ZigLLVM_ArchType arch = arch_list[arch_i];
|
||||
SubArchList sub_arch_list = target_subarch_list(arch);
|
||||
size_t subarch_count = target_subarch_count(sub_arch_list);
|
||||
if (subarch_count == 0) {
|
||||
if (mem_eql_str(archsub_ptr, archsub_len, target_arch_name(arch))) {
|
||||
*out_arch = arch;
|
||||
*out_sub = ZigLLVM_NoSubArch;
|
||||
if (mem_eql_str(archsub_ptr, archsub_len, target_arch_name(arch))) {
|
||||
*out_arch = arch;
|
||||
if (subarch_count == 0) {
|
||||
return ErrorNone;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
for (size_t sub_i = 0; sub_i < subarch_count; sub_i += 1) {
|
||||
ZigLLVM_SubArchType sub = target_subarch_enum(sub_arch_list, sub_i);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user