| ... | ... | @@ -4092,7 +4092,11 @@ fn serve( |
| 4092 | 4092 | var output: Compilation.CImportResult = undefined; |
| 4093 | 4093 | try cmdTranslateC(comp, arena, &output, file_system_inputs, main_progress_node); |
| 4094 | 4094 | defer output.deinit(gpa); |
| 4095 | | try server.serveStringMessage(.file_system_inputs, file_system_inputs.items); |
| 4095 | |
| 4096 | if (file_system_inputs.items.len != 0) { |
| 4097 | try server.serveStringMessage(.file_system_inputs, file_system_inputs.items); |
| 4098 | } |
| 4099 | |
| 4096 | 4100 | if (output.errors.errorMessageCount() != 0) { |
| 4097 | 4101 | try server.serveErrorBundle(output.errors); |
| 4098 | 4102 | } else { |
| ... | ... | @@ -4100,6 +4104,7 @@ fn serve( |
| 4100 | 4104 | .flags = .{ .cache_hit = output.cache_hit }, |
| 4101 | 4105 | }); |
| 4102 | 4106 | } |
| 4107 | |
| 4103 | 4108 | continue; |
| 4104 | 4109 | } |
| 4105 | 4110 | |
| ... | ... | @@ -4567,6 +4572,19 @@ fn cmdTranslateC( |
| 4567 | 4572 | var stdout: []u8 = undefined; |
| 4568 | 4573 | try translateC(comp.gpa, arena, argv.items, prog_node, &stdout); |
| 4569 | 4574 | |
| 4575 | if (out_dep_path) |dep_file_path| add_deps: { |
| 4576 | const dep_basename = fs.path.basename(dep_file_path); |
| 4577 | // Add the files depended on to the cache system, if a dep file was emitted |
| 4578 | man.addDepFilePost(cache_tmp_dir, dep_basename) catch |err| switch (err) { |
| 4579 | error.FileNotFound => break :add_deps, |
| 4580 | else => |e| return e, |
| 4581 | }; |
| 4582 | // Just to save disk space, we delete the file because it is never needed again. |
| 4583 | cache_tmp_dir.deleteFile(dep_basename) catch |err| { |
| 4584 | warn("failed to delete '{s}': {t}", .{ dep_file_path, err }); |
| 4585 | }; |
| 4586 | } |
| 4587 | |
| 4570 | 4588 | if (stdout.len > 0) { |
| 4571 | 4589 | var reader: std.Io.Reader = .fixed(stdout); |
| 4572 | 4590 | const MessageHeader = std.zig.Server.Message.Header; |
| ... | ... | @@ -4590,29 +4608,18 @@ fn cmdTranslateC( |
| 4590 | 4608 | }; |
| 4591 | 4609 | |
| 4592 | 4610 | if (fancy_output) |p| { |
| 4611 | if (file_system_inputs) |buf| try man.populateFileSystemInputs(buf); |
| 4593 | 4612 | p.errors = error_bundle; |
| 4594 | 4613 | return; |
| 4595 | 4614 | } else { |
| 4596 | 4615 | error_bundle.renderToStdErr(color.renderOptions()); |
| 4597 | 4616 | process.exit(1); |
| 4598 | 4617 | } |
| 4599 | | |
| 4600 | | return error.AnalysisFail; |
| 4601 | 4618 | }, |
| 4602 | 4619 | else => unreachable, // No other messagse are sent |
| 4603 | 4620 | } |
| 4604 | 4621 | } |
| 4605 | 4622 | |
| 4606 | | if (out_dep_path) |dep_file_path| { |
| 4607 | | const dep_basename = fs.path.basename(dep_file_path); |
| 4608 | | // Add the files depended on to the cache system. |
| 4609 | | try man.addDepFilePost(cache_tmp_dir, dep_basename); |
| 4610 | | // Just to save disk space, we delete the file because it is never needed again. |
| 4611 | | cache_tmp_dir.deleteFile(dep_basename) catch |err| { |
| 4612 | | warn("failed to delete '{s}': {t}", .{ dep_file_path, err }); |
| 4613 | | }; |
| 4614 | | } |
| 4615 | | |
| 4616 | 4623 | const bin_digest = man.finalBin(); |
| 4617 | 4624 | const hex_digest = Cache.binToHex(bin_digest); |
| 4618 | 4625 | |