Commit b466f8c817

Felix "xq" Queißner <xq@random-projects.net>
2022-08-24 14:42:52
Enables std.build.TranslateCStep to use stage1/stage2 selectively. Unbreaks projects using stage1 and manual TranslateC
1 parent 5fd5950
Changed files (1)
lib
lib/std/build/TranslateCStep.zig
@@ -21,6 +21,7 @@ output_dir: ?[]const u8,
 out_basename: []const u8,
 target: CrossTarget = CrossTarget{},
 output_file: build.GeneratedFile,
+use_stage1: ?bool = null,
 
 pub fn create(builder: *Builder, source: build.FileSource) *TranslateCStep {
     const self = builder.allocator.create(TranslateCStep) catch unreachable;
@@ -91,6 +92,19 @@ fn make(step: *Step) !void {
         try argv_list.append("-D");
         try argv_list.append(c_macro);
     }
+    if (self.use_stage1) |stage1| {
+        if (stage1) {
+            try argv_list.append("-fstage1");
+        } else {
+            try argv_list.append("-fno-stage1");
+        }
+    } else if (self.builder.use_stage1) |stage1| {
+        if (stage1) {
+            try argv_list.append("-fstage1");
+        } else {
+            try argv_list.append("-fno-stage1");
+        }
+    }
 
     try argv_list.append(self.source.getPath(self.builder));