mirror of https://github.com/odrling/Aegisub
53 lines
1.7 KiB
Bash
53 lines
1.7 KiB
Bash
|
srcdir="$1"
|
||
|
|
||
|
# If no git repo try to read from the existing git_version.h, for building from tarballs
|
||
|
if ! test -d "${srcdir}/.git"; then
|
||
|
version_h_path="${srcdir}/aegisub/build/git_version.h"
|
||
|
if test -f "${version_h_path}"; then
|
||
|
while read line; do
|
||
|
set -- $line
|
||
|
export $2=$(echo $3 | sed 's/"//g')
|
||
|
done < "${version_h_path}"
|
||
|
if test x$BUILD_GIT_VERSION_NUMBER != x -a x$BUILD_GIT_VERSION_STRING != x; then
|
||
|
export VERSION_SOURCE="from cached git_version.h"
|
||
|
return 0
|
||
|
else
|
||
|
echo "invalid git_version.h"
|
||
|
exit 2
|
||
|
fi
|
||
|
else
|
||
|
echo "git repo not found and no cached git_version.h"
|
||
|
exit 2
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
last_svn_revision=6962
|
||
|
last_svn_hash="2289c084f28d9923989e1b58b81332347130ea78"
|
||
|
|
||
|
git_branch="$(git symbolic-ref HEAD 2> /dev/null)" || git_branch="(unnamed branch)"
|
||
|
git_branch="${git_branch##refs/heads/}"
|
||
|
git_revision=$(expr $last_svn_revision + $(git log --pretty=oneline $last_svn_hash..HEAD 2>/dev/null | wc -l))
|
||
|
git_hash=$(git rev-parse --short HEAD)
|
||
|
|
||
|
git_version_str="${git_revision}-${git_branch}-${git_hash}"
|
||
|
|
||
|
new_version_h="\
|
||
|
#define BUILD_GIT_VERSION_NUMBER ${git_revision}
|
||
|
#define BUILD_GIT_VERSION_STRING \"${git_version_str}\""
|
||
|
|
||
|
# may not exist yet for out of tree builds
|
||
|
mkdir -p build
|
||
|
version_h_path="build/git_version.h"
|
||
|
|
||
|
# Write it only if it's changed to avoid spurious rebuilds
|
||
|
# This bizzare comparison method is due to that newlines in shell variables are very exciting
|
||
|
case "$(cat ${version_h_path} 2> /dev/null)"
|
||
|
in
|
||
|
"${new_version_h}");;
|
||
|
*) echo "${new_version_h}" > "${version_h_path}"
|
||
|
esac
|
||
|
|
||
|
export BUILD_GIT_VERSION_NUMBER="${git_revision}"
|
||
|
export BUILD_GIT_VERSION_STRING="${git_version_str}"
|
||
|
export VERSION_SOURCE="from git"
|