motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 02438aabe3a04ac8ca2a2e0b2501ba18885652e3 (tree)
parent 4af763d401b48f7186650335c8e42e8fe29751bf
Author: Jay Petacat <jay@jayschwa.net>
Date:   Wed, 30 Dec 2020 20:57:50 -0600

Remove 'g' prefix from commit hash in Zig semver

Diffstat:
MCMakeLists.txt | 2+-
Mbuild.zig | 10++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -46,7 +46,7 @@ if("${ZIG_VERSION}" STREQUAL "") if(NOT GIT_TAG VERSION_EQUAL ZIG_VERSION) message(SEND_ERROR "Zig version (${ZIG_VERSION}) does not match Git tag (${GIT_TAG}).") endif() - elseif(GIT_DESCRIBE MATCHES "^v?([0-9]+\\.[0-9]+\\.[0-9]+)-([0-9]+)-(.+)$") + elseif(GIT_DESCRIBE MATCHES "^v?([0-9]+\\.[0-9]+\\.[0-9]+)-([0-9]+)-g(.+)$") # Untagged pre-release. The Zig version is updated to include the number of commits # since the last tagged version and the commit hash. The version is formatted in # accordance with the https://semver.org specification. diff --git a/build.zig b/build.zig @@ -256,11 +256,17 @@ pub fn build(b: *Builder) !void { std.process.exit(1); } + // Check that the commit hash is prefixed with a 'g' (a Git convention). + if (commit_id.len < 1 or commit_id[0] != 'g') { + std.debug.print("Unexpected `git describe` output: {}\n", .{git_describe}); + break :v version_string; + } + // The version is reformatted in accordance with the https://semver.org specification. - break :v b.fmt("{}-dev.{}+{}", .{ version_string, commit_height, commit_id }); + break :v b.fmt("{}-dev.{}+{}", .{ version_string, commit_height, commit_id[1..] }); }, else => { - std.debug.print("Failed to parse `git describe` output: {}\n", .{git_describe}); + std.debug.print("Unexpected `git describe` output: {}\n", .{git_describe}); break :v version_string; }, }