Simplify version.sh
Also remove some non-POSIX syntax and improve robustness. As a bonus the script now runs about 2-3 times faster. `git rev-list --count` could be used to simplify things even further, but that functionality was added in git 1.7.2 so keep `wc -l` for now to maintain compatibility with older git versions.
This commit is contained in:
committed by
Anton Mitrofanov
parent
f7f6af76ef
commit
1a3d963441
@@ -1224,7 +1224,7 @@ cat > x264_config.h << EOF
|
|||||||
#define X264_CHROMA_FORMAT $config_chroma_format
|
#define X264_CHROMA_FORMAT $config_chroma_format
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
${SRCPATH}/version.sh "${SRCPATH}" >> x264_config.h
|
${SRCPATH}/version.sh >> x264_config.h
|
||||||
|
|
||||||
if [ "$cli_libx264" = "system" ] ; then
|
if [ "$cli_libx264" = "system" ] ; then
|
||||||
if [ "$shared" = "yes" ]; then
|
if [ "$shared" = "yes" ]; then
|
||||||
|
|||||||
+21
-22
@@ -1,29 +1,28 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
[ -n "$1" ] && cd $1
|
|
||||||
|
|
||||||
git_version() {
|
cd "$(dirname "$0")" >/dev/null && [ -f x264.h ] || exit 1
|
||||||
trap 'rm -f config.git-hash' EXIT
|
|
||||||
git rev-list HEAD | sort > config.git-hash
|
api="$(grep '#define X264_BUILD' < x264.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')"
|
||||||
LOCALVER=`wc -l config.git-hash | awk '{print $1}'`
|
ver="x"
|
||||||
if [ $LOCALVER \> 1 ] ; then
|
version=""
|
||||||
VER=`git rev-list origin/master | sort | join config.git-hash - | wc -l | awk '{print $1}'`
|
|
||||||
VER_DIFF=$(($LOCALVER-$VER))
|
if [ -d .git ] && command -v git >/dev/null 2>&1 ; then
|
||||||
echo "#define X264_REV $VER"
|
localver="$(($(git rev-list HEAD | wc -l)))"
|
||||||
echo "#define X264_REV_DIFF $VER_DIFF"
|
if [ "$localver" -gt 1 ] ; then
|
||||||
if [ $VER_DIFF != 0 ] ; then
|
ver_diff="$(($(git rev-list origin/master..HEAD | wc -l)))"
|
||||||
VER="$VER+$VER_DIFF"
|
ver="$((localver-ver_diff))"
|
||||||
|
echo "#define X264_REV $ver"
|
||||||
|
echo "#define X264_REV_DIFF $ver_diff"
|
||||||
|
if [ "$ver_diff" -ne 0 ] ; then
|
||||||
|
ver="$ver+$ver_diff"
|
||||||
fi
|
fi
|
||||||
if git status | grep -q "modified:" ; then
|
if git status | grep -q "modified:" ; then
|
||||||
VER="${VER}M"
|
ver="${ver}M"
|
||||||
|
fi
|
||||||
|
ver="$ver $(git rev-list -n 1 HEAD | cut -c 1-7)"
|
||||||
|
version=" r$ver"
|
||||||
fi
|
fi
|
||||||
VER="$VER $(git rev-list HEAD -n 1 | cut -c 1-7)"
|
|
||||||
VERSION=" r$VER"
|
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
VER="x"
|
echo "#define X264_VERSION \"$version\""
|
||||||
VERSION=""
|
echo "#define X264_POINTVER \"0.$api.$ver\""
|
||||||
[ -d .git ] && (type git >/dev/null 2>&1) && git_version
|
|
||||||
echo "#define X264_VERSION \"$VERSION\""
|
|
||||||
API=`grep '#define X264_BUILD' < x264.h | sed -e 's/.* \([1-9][0-9]*\).*/\1/'`
|
|
||||||
echo "#define X264_POINTVER \"0.$API.$VER\""
|
|
||||||
|
|||||||
Reference in New Issue
Block a user