Skip to content

Commit

Permalink
Add macros to get the semantic version of the current release
Browse files Browse the repository at this point in the history
  • Loading branch information
sjoelund committed Jun 18, 2015
1 parent 00c80dc commit 51d5f52
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
6 changes: 6 additions & 0 deletions m4/semver.m4
@@ -0,0 +1,6 @@
AC_SUBST(SOURCE_REVISION)

AC_MSG_CHECKING([for revision])
SOURCE_REVISION=`$ac_pwd/common/semver.sh`
AC_MSG_RESULT([$SOURCE_REVISION])

31 changes: 31 additions & 0 deletions semver.sh
@@ -0,0 +1,31 @@
#!/bin/sh

SOURCE_REVISION=""
if test -f REVISION; then
SOURCE_REVISION=`test -f REVISION && head -n1 REVISION`
elif test "${PWD##*/}" != "OpenModelica" && test -f ../REVISION; then
SOURCE_REVISION="OpenModelica `test -f ../REVISION && head -n1 ../REVISION`"
elif test -z "$SOURCE_REVISION" && test -e .git; then
DESCRIBE_SHORT=`git describe --match "v[0-9]*.[0-9]*.[0-9]*" --always`
DESCRIBE_LONG=`git describe --match "v[0-9]*.[0-9]*.[0-9]*" --always --long`
if test "$DESCRIBE_SHORT" != "$DESCRIBE_LONG"; then
SOURCE_VERSION="$DESCRIBE_SHORT"
else
HASH=`echo $DESCRIBE_SHORT | rev | cut -d- -f1 | rev`
COMMIT_SINCE_LAST=`echo $DESCRIBE_SHORT | rev | cut -d- -f2 | rev`
PRERELEASE=`echo $DESCRIBE_SHORT | rev | cut -d- -f3- | rev | cut -d- -f2-`
RELEASE_MAJOR=`echo $DESCRIBE_LONG | cut -d. -f1`
RELEASE_MINOR=`echo $DESCRIBE_LONG | cut -d. -f2`
RELEASE_PATCH=`echo $DESCRIBE_LONG | cut -d. -f3 | cut -d- -f1`
if test -z "$PRERELEASE"; then
# Invent a pre-release tag
PRERELEASE="dev"
COMMIT_SINCE_LAST=$(($COMMIT_SINCE_LAST-1))
RELEASE_PATCH=$(($COMMIT_SINCE_LAST+1))
fi
SOURCE_REVISION="$RELEASE_MAJOR.$RELEASE_MINOR.$RELEASE_PATCH-$PRERELEASE.$COMMIT_SINCE_LAST+$HASH"
fi
fi
test -z "$SOURCE_REVISION" && SOURCE_REVISION="????"

echo "$SOURCE_REVISION"

0 comments on commit 51d5f52

Please sign in to comment.