From 323009bfd003ff1540967b7b67efebab1ee8693d Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Tue, 25 Jan 2022 03:43:52 +0100 Subject: autoconf: Automatically derive version number from latest git tag --- Makefile.am | 6 +++++- configure.ac | 7 ++++++- git-version-gen | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100755 git-version-gen 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" -- cgit v1.1-32-gdbae