summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2022-01-25 03:43:52 +0100
committerGravatar Nikias Bassen2022-01-25 03:43:52 +0100
commit323009bfd003ff1540967b7b67efebab1ee8693d (patch)
tree5e01fc1900db29d1d07ceb66e9958d94d3160f19
parent17da5ba554426d732fc850e7211bae7d3a7c016e (diff)
downloadlibplist-323009bfd003ff1540967b7b67efebab1ee8693d.tar.gz
libplist-323009bfd003ff1540967b7b67efebab1ee8693d.tar.bz2
autoconf: Automatically derive version number from latest git tag
-rw-r--r--Makefile.am6
-rw-r--r--configure.ac7
-rwxr-xr-xgit-version-gen15
3 files changed, 26 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 4d21b65..84b196d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,11 @@ SUBDIRS += fuzz
endif
EXTRA_DIST = \
- README.md
+ README.md \
+ git-version-gen
+
+dist-hook:
+ echo $(VERSION) > $(distdir)/.tarball-version
docs/html: $(top_builddir)/doxygen.cfg $(top_srcdir)/include/plist/*.h
rm -rf docs/html
diff --git a/configure.ac b/configure.ac
index 0d13e04..d1b1f62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68)
-AC_INIT([libplist], [2.2.1], [https://github.com/libimobiledevice/libplist/issues],, [https://libimobiledevice.org])
+AC_INIT([libplist], [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], [https://github.com/libimobiledevice/libplist/issues],, [https://libimobiledevice.org])
AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip check-news])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
AC_CONFIG_SRCDIR([src/])
@@ -19,6 +19,11 @@ LIBPLIST_SO_VERSION=6:0:3
AC_SUBST(LIBPLIST_SO_VERSION)
+# Check if we have a version defined
+if test -z $PACKAGE_VERSION; then
+ AC_MSG_ERROR([PACKAGE_VERSION is not defined. Make sure to configure a source tree checked out from git or that .tarball-version is present.])
+fi
+
# Checks for programs.
AC_PROG_CC
AC_PROG_CXX
diff --git a/git-version-gen b/git-version-gen
new file mode 100755
index 0000000..6feac34
--- /dev/null
+++ b/git-version-gen
@@ -0,0 +1,15 @@
+#!/bin/sh
+SRCDIR=`dirname $0`
+if test -n "$1"; then
+ VER=$1
+else
+ if test -d "${SRCDIR}/.git" && test -x "`which git`" ; then
+ git update-index -q --refresh
+ VER=`git describe --tags --always --dirty=-dirty`
+ else
+ if test -f "${SRCDIR}/.tarball-version"; then
+ VER=`cat "${SRCDIR}/.tarball-version"`
+ fi
+ fi
+fi
+printf %s "$VER"