| ... | ... | @@ -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 | 8175 | static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { |
| 8168 | 8176 | Error err; |
| 8169 | 8177 | |
| ... | ... | @@ -8190,6 +8198,19 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) { |
| 8190 | 8198 | args.append("-nostdinc"); |
| 8191 | 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 | 8214 | args.append("-isystem"); |
| 8194 | 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 | 8284 | } |
| 8264 | 8285 | |
| 8265 | 8286 | if (g->verbose_cc) { |
| 8266 | | fprintf(stderr, "zig"); |
| 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"); |
| 8287 | print_zig_cc_cmd("zig", &args); |
| 8271 | 8288 | } |
| 8272 | | |
| 8273 | 8289 | os_spawn_process(buf_ptr(self_exe_path), args, &term); |
| 8274 | 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 | 8293 | exit(1); |
| 8277 | 8294 | } |
| 8278 | 8295 | |