| ... | @@ -16,11 +16,13 @@ out_basename: []const u8, | ... | @@ -16,11 +16,13 @@ out_basename: []const u8, |
| 16 | target: CrossTarget, | 16 | target: CrossTarget, |
| 17 | optimize: std.builtin.OptimizeMode, | 17 | optimize: std.builtin.OptimizeMode, |
| 18 | output_file: std.Build.GeneratedFile, | 18 | output_file: std.Build.GeneratedFile, |
| | 19 | link_libc: bool, |
| 19 | | 20 | |
| 20 | pub const Options = struct { | 21 | pub const Options = struct { |
| 21 | source_file: std.Build.LazyPath, | 22 | source_file: std.Build.LazyPath, |
| 22 | target: CrossTarget, | 23 | target: CrossTarget, |
| 23 | optimize: std.builtin.OptimizeMode, | 24 | optimize: std.builtin.OptimizeMode, |
| | 25 | link_libc: bool = true, |
| 24 | }; | 26 | }; |
| 25 | | 27 | |
| 26 | pub fn create(owner: *std.Build, options: Options) *TranslateC { | 28 | pub fn create(owner: *std.Build, options: Options) *TranslateC { |
| ... | @@ -40,6 +42,7 @@ pub fn create(owner: *std.Build, options: Options) *TranslateC { | ... | @@ -40,6 +42,7 @@ pub fn create(owner: *std.Build, options: Options) *TranslateC { |
| 40 | .target = options.target, | 42 | .target = options.target, |
| 41 | .optimize = options.optimize, | 43 | .optimize = options.optimize, |
| 42 | .output_file = std.Build.GeneratedFile{ .step = &self.step }, | 44 | .output_file = std.Build.GeneratedFile{ .step = &self.step }, |
| | 45 | .link_libc = options.link_libc, |
| 43 | }; | 46 | }; |
| 44 | source.addStepDependencies(&self.step); | 47 | source.addStepDependencies(&self.step); |
| 45 | return self; | 48 | return self; |
| ... | @@ -124,7 +127,9 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { | ... | @@ -124,7 +127,9 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { |
| 124 | var argv_list = std.ArrayList([]const u8).init(b.allocator); | 127 | var argv_list = std.ArrayList([]const u8).init(b.allocator); |
| 125 | try argv_list.append(b.zig_exe); | 128 | try argv_list.append(b.zig_exe); |
| 126 | try argv_list.append("translate-c"); | 129 | try argv_list.append("translate-c"); |
| 127 | try argv_list.append("-lc"); | 130 | if (self.link_libc) { |
| | 131 | try argv_list.append("-lc"); |
| | 132 | } |
| 128 | | 133 | |
| 129 | try argv_list.append("--listen=-"); | 134 | try argv_list.append("--listen=-"); |
| 130 | | 135 | |