43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
GETVER="${0%/*}/getver.pl"
|
||
|
GDLIB_MAJOR=$("${GETVER}" MAJOR)
|
||
|
GDLIB_MINOR=$("${GETVER}" MINOR)
|
||
|
GDLIB_REVISION=$("${GETVER}" RELEASE)
|
||
|
|
||
|
# Dynamic library version information
|
||
|
# See http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
|
||
|
|
||
|
GDLIB_LT_CURRENT=3
|
||
|
# This is the version where the soname (current above) changes. We use it
|
||
|
# to reset the revision base back to zero. It's a bit of a pain, but some
|
||
|
# systems restrict the revision range below to [0..255] (like OS X).
|
||
|
GDLIB_PREV_MAJOR=2
|
||
|
GDLIB_PREV_MINOR=2
|
||
|
# This isn't 100% correct, but it tends to be a close enough approximation
|
||
|
# for how we manage the codebase. It's rare to do a release that doesn't
|
||
|
# modify the library since this project is centered around the library.
|
||
|
GDLIB_LT_REVISION=$(( ((GDLIB_MAJOR - GDLIB_PREV_MAJOR) << 6) | ((GDLIB_MINOR - GDLIB_PREV_MINOR) << 3) | GDLIB_REVISION ))
|
||
|
GDLIB_LT_AGE=0
|
||
|
|
||
|
# The first three fields we feed into libtool and the OS target determines how
|
||
|
# they get used. The last two fields we feed into cmake. We use the same rules
|
||
|
# as Linux SONAME versioning in libtool, but cmake should handle it for us.
|
||
|
case $1 in
|
||
|
CURRENT)
|
||
|
printf '%s' "${GDLIB_LT_CURRENT}"
|
||
|
;;
|
||
|
REVISION)
|
||
|
printf '%s' "${GDLIB_LT_REVISION}"
|
||
|
;;
|
||
|
AGE)
|
||
|
printf '%s' "${GDLIB_LT_AGE}"
|
||
|
;;
|
||
|
VERSION)
|
||
|
printf '%s' "$(( GDLIB_LT_CURRENT - GDLIB_LT_AGE )).${GDLIB_LT_AGE}.${GDLIB_LT_REVISION}"
|
||
|
;;
|
||
|
SONAME)
|
||
|
printf '%s' "$(( GDLIB_LT_CURRENT - GDLIB_LT_AGE ))"
|
||
|
;;
|
||
|
esac
|