diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-08-15 14:17:40 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-08-15 20:04:08 -0400 |
| commit | 8d8d568854d33be7bcc2bc9874029d1082914af7 (patch) | |
| tree | 5f586a97c22f088515f9291e37f3af229aa28db3 /build.zig | |
| parent | 66d76cc4f938209470fedd8e52f71267f0e0d0e4 (diff) | |
| download | zig-8d8d568854d33be7bcc2bc9874029d1082914af7.tar.gz zig-8d8d568854d33be7bcc2bc9874029d1082914af7.zip | |
stage2: implement zig version
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -10,6 +10,8 @@ const io = std.io; const fs = std.fs; const InstallDirectoryOptions = std.build.InstallDirectoryOptions; +const zig_version = std.builtin.Version{ .major = 0, .minor = 6, .patch = 0 }; + pub fn build(b: *Builder) !void { b.setPreferredReleaseMode(.ReleaseFast); const mode = b.standardReleaseOptions(); @@ -79,6 +81,24 @@ pub fn build(b: *Builder) !void { const log_scopes = b.option([]const []const u8, "log", "Which log scopes to enable") orelse &[0][]const u8{}; + const opt_version_string = b.option([]const u8, "version-string", "Override Zig version string. Default is to find out with git."); + const version = if (opt_version_string) |version| version else v: { + var code: u8 = undefined; + const version_untrimmed = b.execAllowFail(&[_][]const u8{ + "git", "-C", b.build_root, "name-rev", "HEAD", + "--tags", "--name-only", "--no-undefined", "--always", + }, &code, .Ignore) catch |err| { + std.debug.print( + \\Unable to determine zig version string: {} + \\Provide the zig version string explicitly using the `version-string` build option. + , .{err}); + std.process.exit(1); + }; + const trimmed = mem.trim(u8, version_untrimmed, " \n\r"); + break :v b.fmt("{}.{}.{}+{}", .{ zig_version.major, zig_version.minor, zig_version.patch, trimmed }); + }; + exe.addBuildOption([]const u8, "version", version); + exe.addBuildOption([]const []const u8, "log_scopes", log_scopes); exe.addBuildOption(bool, "enable_tracy", tracy != null); if (tracy) |tracy_path| { |
