mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
Set the first version component to be the same as the last Subversion-based release build version and add two more components (major and minor version numbers). To allow for nightly build updates this should probably include another component (e.g. build timestamp), but we're not there yet.
70 lines
2.3 KiB
Bash
Executable File
70 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Generate files to be included: only overwrite them if changed so make
|
|
# won't rebuild everything unless necessary
|
|
replace_if_differs ()
|
|
{
|
|
if cmp $1 $2 > /dev/null 2>&1; then
|
|
rm -f $1
|
|
else
|
|
mv -f $1 $2
|
|
fi
|
|
}
|
|
|
|
echo "creating libtransmission/version.h"
|
|
|
|
user_agent_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep user_agent_prefix | cut -d , -f 6`
|
|
|
|
peer_id_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep peer_id_prefix | cut -d , -f 6`
|
|
|
|
major_version=`echo ${user_agent_prefix} | awk -F . '{print $1}'`
|
|
minor_version=`echo ${user_agent_prefix} | awk -F . '{print $2 + 0}'`
|
|
|
|
vcs_revision=
|
|
vcs_revision_file=REVISION
|
|
|
|
if [ -n "$JENKINS_URL" -a -n "$GIT_COMMIT" ]; then
|
|
vcs_revision=$GIT_COMMIT
|
|
elif [ -n "$TEAMCITY_PROJECT_NAME" -a -n "$BUILD_VCS_NUMBER" ]; then
|
|
vcs_revision=$BUILD_VCS_NUMBER
|
|
elif [ -d ".git" ] && type git >/dev/null 2>&1; then
|
|
vcs_revision=`git rev-list --max-count=1 HEAD`
|
|
elif [ -f "$vcs_revision_file" ]; then
|
|
vcs_revision=`cat "$vcs_revision_file"`
|
|
fi
|
|
|
|
vcs_revision=`echo $vcs_revision`
|
|
|
|
if [ -n "$vcs_revision" ]; then
|
|
[ -f "$vcs_revision_file" ] && [ "`cat "$vcs_revision_file"`" = "$vcs_revision" ] || echo "$vcs_revision" > "$vcs_revision_file"
|
|
else
|
|
vcs_revision=0
|
|
rm -f "$vcs_revision_file"
|
|
fi
|
|
|
|
vcs_revision=`echo ${vcs_revision} | head -c10`
|
|
|
|
cat > libtransmission/version.h.new << EOF
|
|
#pragma once
|
|
|
|
#define PEERID_PREFIX "${peer_id_prefix}"
|
|
#define USERAGENT_PREFIX "${user_agent_prefix}"
|
|
#define VCS_REVISION "${vcs_revision}"
|
|
#define VCS_REVISION_NUM ${vcs_revision}
|
|
#define SHORT_VERSION_STRING "${user_agent_prefix}"
|
|
#define LONG_VERSION_STRING "${user_agent_prefix} (${vcs_revision})"
|
|
#define VERSION_STRING_INFOPLIST ${user_agent_prefix}
|
|
#define BUILD_STRING_INFOPLIST 14714.${major_version}.${minor_version}
|
|
#define MAJOR_VERSION ${major_version}
|
|
#define MINOR_VERSION ${minor_version}
|
|
EOF
|
|
|
|
# Add a release definition
|
|
case "${peer_id_prefix}" in
|
|
*X-) echo '#define TR_BETA_RELEASE 1' ;;
|
|
*Z-) echo '#define TR_NIGHTLY_RELEASE 1' ;;
|
|
*) echo '#define TR_STABLE_RELEASE 1' ;;
|
|
esac >> "libtransmission/version.h.new"
|
|
|
|
replace_if_differs libtransmission/version.h.new libtransmission/version.h
|