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
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
AM_TESTS_ENVIRONMENT = \
|
||||||
|
AM_SRCDIR=${srcdir}
|
||||||
|
|
||||||
|
TESTS=check-pc-requires
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
tools/README \
|
tools/README \
|
||||||
tools/api_conv.pl \
|
tools/api_conv.pl \
|
||||||
tools/constants \
|
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