aboutsummaryrefslogtreecommitdiff
path: root/std/build.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2018-12-01 01:21:59 -0500
committerAndrew Kelley <andrew@ziglang.org>2018-12-01 01:21:59 -0500
commita9eab69b588176508d027f96eed298134433cd6e (patch)
treead4de8856733db2412c1f0c578e287cd4318e200 /std/build.zig
parent823969a5a47e054842056e3380b3987058ccd2dd (diff)
downloadzig-a9eab69b588176508d027f96eed298134433cd6e.tar.gz
zig-a9eab69b588176508d027f96eed298134433cd6e.zip
zig build: addStaticExecutable
Diffstat (limited to 'std/build.zig')
-rw-r--r--std/build.zig13
1 files changed, 10 insertions, 3 deletions
diff --git a/std/build.zig b/std/build.zig
index 5d894eeeb1..034e3ce324 100644
--- a/std/build.zig
+++ b/std/build.zig
@@ -150,7 +150,11 @@ pub const Builder = struct {
}
pub fn addExecutable(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep {
- return LibExeObjStep.createExecutable(self, name, root_src);
+ return LibExeObjStep.createExecutable(self, name, root_src, false);
+ }
+
+ pub fn addStaticExecutable(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep {
+ return LibExeObjStep.createExecutable(self, name, root_src, true);
}
pub fn addObject(self: *Builder, name: []const u8, root_src: []const u8) *LibExeObjStep {
@@ -891,8 +895,8 @@ pub const LibExeObjStep = struct {
return self;
}
- pub fn createExecutable(builder: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep {
- const self = builder.allocator.create(initExtraArgs(builder, name, root_src, Kind.Exe, false, builder.version(0, 0, 0))) catch unreachable;
+ pub fn createExecutable(builder: *Builder, name: []const u8, root_src: ?[]const u8, static: bool) *LibExeObjStep {
+ const self = builder.allocator.create(initExtraArgs(builder, name, root_src, Kind.Exe, static, builder.version(0, 0, 0))) catch unreachable;
return self;
}
@@ -1270,6 +1274,9 @@ pub const LibExeObjStep = struct {
zig_args.append("--ver-patch") catch unreachable;
zig_args.append(builder.fmt("{}", self.version.patch)) catch unreachable;
}
+ if (self.kind == Kind.Exe and self.static) {
+ zig_args.append("--static") catch unreachable;
+ }
switch (self.target) {
Target.Native => {},