mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
meson: Setup pre commit hook and fix getpluginsdir for standalone case
This commit is contained in:
parent
00d20b044c
commit
b910ecca68
3 changed files with 93 additions and 5 deletions
83
hooks/pre-commit.hook
Executable file
83
hooks/pre-commit.hook
Executable file
|
@ -0,0 +1,83 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Check that the code follows a consistant code style
|
||||||
|
#
|
||||||
|
|
||||||
|
# Check for existence of indent, and error out if not present.
|
||||||
|
# On some *bsd systems the binary seems to be called gnunindent,
|
||||||
|
# so check for that first.
|
||||||
|
|
||||||
|
version=`gnuindent --version 2>/dev/null`
|
||||||
|
if test "x$version" = "x"; then
|
||||||
|
version=`gindent --version 2>/dev/null`
|
||||||
|
if test "x$version" = "x"; then
|
||||||
|
version=`indent --version 2>/dev/null`
|
||||||
|
if test "x$version" = "x"; then
|
||||||
|
echo "GStreamer git pre-commit hook:"
|
||||||
|
echo "Did not find GNU indent, please install it before continuing."
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
INDENT=indent
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
INDENT=gindent
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
INDENT=gnuindent
|
||||||
|
fi
|
||||||
|
|
||||||
|
case `$INDENT --version` in
|
||||||
|
GNU*)
|
||||||
|
;;
|
||||||
|
default)
|
||||||
|
echo "GStreamer git pre-commit hook:"
|
||||||
|
echo "Did not find GNU indent, please install it before continuing."
|
||||||
|
echo "(Found $INDENT, but it doesn't seem to be GNU indent)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
INDENT_PARAMETERS="--braces-on-if-line \
|
||||||
|
--case-brace-indentation0 \
|
||||||
|
--case-indentation2 \
|
||||||
|
--braces-after-struct-decl-line \
|
||||||
|
--line-length80 \
|
||||||
|
--no-tabs \
|
||||||
|
--cuddle-else \
|
||||||
|
--dont-line-up-parentheses \
|
||||||
|
--continuation-indentation4 \
|
||||||
|
--honour-newlines \
|
||||||
|
--tab-size8 \
|
||||||
|
--indent-level2 \
|
||||||
|
--leave-preprocessor-space"
|
||||||
|
|
||||||
|
echo "--Checking style--"
|
||||||
|
for file in `git diff-index --cached --name-only HEAD --diff-filter=ACMR| grep "\.c$"` ; do
|
||||||
|
# nf is the temporary checkout. This makes sure we check against the
|
||||||
|
# revision in the index (and not the checked out version).
|
||||||
|
nf=`git checkout-index --temp ${file} | cut -f 1`
|
||||||
|
newfile=`mktemp /tmp/${nf}.XXXXXX` || exit 1
|
||||||
|
$INDENT ${INDENT_PARAMETERS} \
|
||||||
|
$nf -o $newfile 2>> /dev/null
|
||||||
|
# FIXME: Call indent twice as it tends to do line-breaks
|
||||||
|
# different for every second call.
|
||||||
|
$INDENT ${INDENT_PARAMETERS} \
|
||||||
|
$newfile 2>> /dev/null
|
||||||
|
diff -u -p "${nf}" "${newfile}"
|
||||||
|
r=$?
|
||||||
|
rm "${newfile}"
|
||||||
|
rm "${nf}"
|
||||||
|
if [ $r != 0 ] ; then
|
||||||
|
echo "================================================================================================="
|
||||||
|
echo " Code style error in: $file "
|
||||||
|
echo " "
|
||||||
|
echo " Please fix before committing. Don't forget to run git add before trying to commit again. "
|
||||||
|
echo " If the whole file is to be committed, this should work (run from the top-level directory): "
|
||||||
|
echo " "
|
||||||
|
echo " gst-indent $file; git add $file; git commit"
|
||||||
|
echo " "
|
||||||
|
echo "================================================================================================="
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "--Checking style pass--"
|
|
@ -246,3 +246,6 @@ subdir('po')
|
||||||
configure_file(input : 'config.h.meson',
|
configure_file(input : 'config.h.meson',
|
||||||
output : 'config.h',
|
output : 'config.h',
|
||||||
configuration : cdata)
|
configuration : cdata)
|
||||||
|
|
||||||
|
python3 = find_program('python3')
|
||||||
|
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
|
||||||
|
|
|
@ -16,10 +16,12 @@ for i in range(0, len(args), 2):
|
||||||
res += ':' + path
|
res += ':' + path
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
res += ':' + subprocess.check_output(['pkg-config',
|
res += ':' + subprocess.check_output([
|
||||||
'--variable=pluginsdir',
|
'pkg-config', '--variable=pluginsdir',
|
||||||
pkg_name]).decode()
|
pkg_name]).decode().replace("\n", "")
|
||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError as e:
|
||||||
exit(1)
|
# Probably means there is no .pc file for the module
|
||||||
|
# and it should hopefully no be too bad.
|
||||||
|
pass
|
||||||
|
|
||||||
print(res.strip(":"))
|
print(res.strip(":"))
|
||||||
|
|
Loading…
Reference in a new issue