blob: b493cf5eea3b4812ca0d375f56c4e9eb8d704f24 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/bin/sh
# Get version-info specified in Makefile
V=$1
# When building from a git repository, derive the version from the most recent
# release tag instead. The result follows Semantic Versioning 2.0.0, using the
# number of commits made since that tag as build metadata, so seven commits
# after the v1.3.1 tag gives "v1.3.1+7", while a build of the tag itself gives
# plain "v1.3.1". Release tags are expected to be named vMAJOR.MINOR.PATCH.
if test "$(git rev-parse --git-dir 2>/dev/null)" = '.git'
then
tag=$(git describe --abbrev=0 --match 'v[0-9]*' HEAD 2>/dev/null)
if test -n "$tag"
then
ahead=$(git rev-list --count "$tag..HEAD" 2>/dev/null)
if test -n "$ahead" && test "$ahead" -gt 0
then
V="$tag+$ahead"
else
V="$tag"
fi
fi
fi
new="CGIT_VERSION = $V"
old=$(cat VERSION 2>/dev/null)
# Exit if VERSION is uptodate
test "$old" = "$new" && exit 0
# Update VERSION with new version-info
echo "$new" > VERSION
cat VERSION
|