Unified handling of version extraction.

Removed oddly named and ridiculously outdated documentation text (scripts).

Created new directory 'scripts'.

Added unified version extraction script (scripts/get-version). Yes, it's
more shell script code but faster and more maintainable than the sed commands
and the swearwords/regexps repeated over and over again.

Makefile and packaging/macosx/make-package.sh modified accordingly.

I don't do windos neither macos but, AFAICS my tests show, it should be safe.

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Cristian Ionescu-Idbohrn 2013-02-16 23:54:17 +01:00 committed by Dirk Hohndel
parent 2d8a203026
commit 727ee3aa98
4 changed files with 64 additions and 18 deletions

View file

@ -26,11 +26,14 @@ MANFILES = $(NAME).1
XSLTFILES = xslt/*.xslt
UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win")
VERSION_STRING := $(shell git describe --tags --abbrev=12 || echo "v$(VERSION)")
# Windows .nsi style with four numbers 1.2.3.4
PRODVERSION_STRING := $(shell git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3.0/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0.0/' || echo "$(VERSION).0.0")
GET_VERSION = ./scripts/get-version
VERSION_STRING := $(shell $(GET_VERSION) linux || echo "v$(VERSION)")
# Mac Info.plist style with three numbers 1.2.3
CFBUNDLEVERSION_STRING := $(shell git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0/' || echo "$(VERSION).0")
CFBUNDLEVERSION_STRING := $(shell $(GET_VERSION) darwin $(VERSION_STRING) || \
echo "$(VERSION).0")
# Windows .nsi style with four numbers 1.2.3.4
PRODVERSION_STRING := $(shell $(GET_VERSION) win $(VERSION_STRING) || \
echo "$(VERSION).0.0")
# find libdivecomputer
# First deal with the cross compile environment and with Mac.

View file

@ -24,7 +24,7 @@ PREFIX="/Applications/Subsurface.app/Contents/Resources"
INFOPLIST=./packaging/macosx/Info.plist
# same git version magic as in the Makefile
VERSION=`git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0/' || echo "git.missing.please.hardcode.version"`
VERSION=$(./scripts/get-version darwin)
# gtk-mac-bundler allegedly supports signing by setting this environment
# variable, but this fails as we change the shared objects below and all

13
scripts
View file

@ -1,13 +0,0 @@
Downloading with 'libdivecomputer':
- result: one XML file for all dives in the computer
[torvalds@i5 examples]$ ./universal -b vyper2 /dev/ttyUSB0
[torvalds@i5 examples]$ mv output.xml 2011-08-28.xml
Unpacking Suunto SDE files:
- result: one XML file per dive:
mv LinusDivelogs.SDE LinusDivelogs.zip
unzip LinusDivelogs.zip

56
scripts/get-version Executable file
View file

@ -0,0 +1,56 @@
#!/bin/sh
# $1 - os name {linux|darwin|win}
# $2 - [optional] raw version string "vX.Y-patchN-sha1". as from `git describe'
# (see below)
set -eu
#set -x
croak() {
echo "$0: $*" >&2
exit 1
}
[ $# -ge 1 ] || croak "missing OS argument"
os=$1
if [ $# -eq 2 ] && [ "$2" ]; then
v0=$2
else
cmd="git describe --tags --abbrev=12"
v0=$($cmd) || croak "odd; command '$cmd' failed"
fi
# strip off the 'v' prefix, if any
v0=${v0#v}
case $os in
linux)
v=$v0
;;
darwin|win)
# split version string using a '-' separator
IFS='-'
set -- $v0
v1=$1
if [ $# -gt 1 ]; then
v1=$v1.$2
else
v1=$v1.0
fi
case $os in
darwin)
v=$v1
;;
win)
# always add '0' as the 4:th digit
v=$v1.0
;;
esac
;;
*)
v='git.missing.please.hardcode.version'
;;
esac
printf '%s' $v