| ... | @@ -8164,6 +8164,14 @@ static void gen_global_asm(CodeGen *g) { | ... | @@ -8164,6 +8164,14 @@ static void gen_global_asm(CodeGen *g) { |
| 8164 | } | 8164 | } |
| 8165 | } | 8165 | } |
| 8166 | | 8166 | |
| | 8167 | static void print_zig_cc_cmd(const char *zig_exe, ZigList<const char *> *args) { |
| | 8168 | fprintf(stderr, zig_exe); |
| | 8169 | for (size_t arg_i = 0; arg_i < args->length; arg_i += 1) { |
| | 8170 | fprintf(stderr, " %s", args->at(arg_i)); |
| | 8171 | } |
| | 8172 | fprintf(stderr, "\n"); |
| | 8173 | } |
| | 8174 | |
| 8167 | static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { | 8175 | static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { |
| 8168 | Error err; | 8176 | Error err; |
| 8169 | | 8177 | |
| ... | @@ -8190,6 +8198,19 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { | ... | @@ -8190,6 +8198,19 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { |
| 8190 | args.append("-nostdinc"); | 8198 | args.append("-nostdinc"); |
| 8191 | args.append("-fno-spell-checking"); | 8199 | args.append("-fno-spell-checking"); |
| 8192 | | 8200 | |
| | 8201 | switch (g->err_color) { |
| | 8202 | case ErrColorAuto: |
| | 8203 | break; |
| | 8204 | case ErrColorOff: |
| | 8205 | args.append("-fno-color-diagnostics"); |
| | 8206 | args.append("-fno-caret-diagnostics"); |
| | 8207 | break; |
| | 8208 | case ErrColorOn: |
| | 8209 | args.append("-fcolor-diagnostics"); |
| | 8210 | args.append("-fcaret-diagnostics"); |
| | 8211 | break; |
| | 8212 | } |
| | 8213 | |
| 8193 | args.append("-isystem"); | 8214 | args.append("-isystem"); |
| 8194 | args.append(buf_ptr(g->zig_c_headers_dir)); | 8215 | args.append(buf_ptr(g->zig_c_headers_dir)); |
| 8195 | | 8216 | |
| ... | @@ -8263,16 +8284,12 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { | ... | @@ -8263,16 +8284,12 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { |
| 8263 | } | 8284 | } |
| 8264 | | 8285 | |
| 8265 | if (g->verbose_cc) { | 8286 | if (g->verbose_cc) { |
| 8266 | fprintf(stderr, "zig"); | 8287 | print_zig_cc_cmd("zig", &args); |
| 8267 | for (size_t arg_i = 0; arg_i < args.length; arg_i += 1) { | | |
| 8268 | fprintf(stderr, " %s", args.at(arg_i)); | | |
| 8269 | } | | |
| 8270 | fprintf(stderr, "\n"); | | |
| 8271 | } | 8288 | } |
| 8272 | | | |
| 8273 | os_spawn_process(buf_ptr(self_exe_path), args, &term); | 8289 | os_spawn_process(buf_ptr(self_exe_path), args, &term); |
| 8274 | if (term.how != TerminationIdClean || term.code != 0) { | 8290 | if (term.how != TerminationIdClean || term.code != 0) { |
| 8275 | fprintf(stderr, "`zig cc` failed\n"); | 8291 | fprintf(stderr, "\nThe following command failed:\n"); |
| | 8292 | print_zig_cc_cmd(buf_ptr(self_exe_path), &args); |
| 8276 | exit(1); | 8293 | exit(1); |
| 8277 | } | 8294 | } |
| 8278 | | 8295 | |