Validate .pc file Requires lines
This walks through the .pc.in files and makes sure all of the Requires lines express sufficient dependency information. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
1f6cd9f1fc
commit
32de4c4213
|
@ -86,8 +86,14 @@ pkgconfig_DATA += xcb-xvmc.pc
|
|||
endif
|
||||
|
||||
|
||||
AM_TESTS_ENVIRONMENT = \
|
||||
AM_SRCDIR=${srcdir}
|
||||
|
||||
TESTS=check-pc-requires
|
||||
|
||||
EXTRA_DIST = \
|
||||
tools/README \
|
||||
tools/api_conv.pl \
|
||||
tools/constants \
|
||||
autogen.sh
|
||||
autogen.sh \
|
||||
$(TESTS)
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
#!/bin/sh
|
||||
|
||||
case "$AM_SRCDIR" in
|
||||
"")
|
||||
AM_SRCDIR="."
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
fix=n
|
||||
status=0
|
||||
case "$1" in
|
||||
"-fix")
|
||||
fix=y
|
||||
;;
|
||||
esac
|
||||
|
||||
for inc in src/*.h; do
|
||||
package=xcb-`basename $inc .h`
|
||||
pcin="$AM_SRCDIR"/$package.pc.in
|
||||
if [ -f $pcin ]; then
|
||||
included=`grep '# *include' $inc |
|
||||
sed -e 's/[^<"]*[<"]//' -e 's/[>"]//' |
|
||||
grep -v 'xcb.h\|xproto.h'`
|
||||
requires=`grep '^Requires:' $pcin`
|
||||
missing=""
|
||||
for i in $included; do
|
||||
ibase=`basename $i .h`
|
||||
r="xcb-$ibase"
|
||||
rpcin="$AM_SRCDIR"/$r.pc.in
|
||||
if [ -f $rpcin ]; then
|
||||
m="$r"
|
||||
for has in $requires; do
|
||||
if [ $has = $r ]; then
|
||||
m=""
|
||||
fi
|
||||
done
|
||||
case "$m" in
|
||||
"")
|
||||
;;
|
||||
*)
|
||||
case "$missing" in
|
||||
"")
|
||||
missing=$m
|
||||
;;
|
||||
*)
|
||||
missing="$missing $m"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
case "$missing" in
|
||||
"")
|
||||
;;
|
||||
*)
|
||||
if [ "$fix" = "y" ]; then
|
||||
echo $package adding dependency on $missing
|
||||
sed -i '/^Requires:/s/$/ '"$missing"'/' $pcin
|
||||
else
|
||||
echo $package missing $missing
|
||||
status=1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
exit $status
|
Loading…
Reference in New Issue