project('plymouth', 'c',
meson_version: '>= 0.61',
- version: run_command(
- 'date', '+%y.%V.' + run_command(
- 'git', 'rev-list',
- run_command('git', 'describe', '--abbrev=0', check: true).stdout().strip() + '..HEAD',
- '--count',
- check: true,
- ).stdout().strip(),
- '-d', '@' + run_command('git', 'log', '-1', '--pretty=format:%ct', check: true).stdout().strip(),
- check: true,
- ).stdout().strip(),
+ version: run_command(['scripts/generate-version.sh'], check: true).stdout().strip(),
)
# Modules
--- /dev/null
+#!/bin/sh
+exec 3>&2 2> /dev/null
+SRCDIR=$(dirname "$0")
+cd "$SRCDIR"
+CWD=$(realpath "$PWD")
+TOPLEVEL_WORKING_DIR=$(realpath "$(git rev-parse --show-toplevel)")
+SCRIPTDIR=${SRCDIR#"${TOPLEVEL_WORKING_DIR}/"}
+exec 2>&3
+
+# If it's not from a git checkout, assume it's from a tarball
+if [ "${TOPLEVEL_WORKING_DIR}/${SCRIPTDIR}" != "$CWD" ]; then
+ VERSION_FROM_DIR_NAME=$(basename "$CWD" | sed -n 's/^plymouth-\([^-]*\)$/\1/p')
+
+ if [ -n "$VERSION_FROM_DIR_NAME" ]; then
+ echo "$VERSION_FROM_DIR_NAME"
+ exit 0
+ fi
+
+ echo "Source doesn't appear to come from an plymouth git clone or tarball. Version unknown."
+ exit 1
+fi
+
+# If it is from a git checkout, derive the version from the date of the last commit, and the number
+# of commits since the last release.
+COMMITS_SINCE_LAST_RELEASE=$(git rev-list $(git describe --abbrev=0)..HEAD --count)
+date +%y.%V.${COMMITS_SINCE_LAST_RELEASE} -d "@$(git log -1 --pretty=format:%ct)"