@@ -4092,14 +4092,19 @@ 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 {
4099
4103
try server .serveEmitDigest (& output .digest , .{
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
0 commit comments