#!/bin/bash pkgconfig=/usr/bin/pkg-config test -x $pkgconfig || { cat > /dev/null exit 0 } [ $# -ge 1 ] || { cat > /dev/null exit 0 } $pkgconfig --atleast-pkgconfig-version="0.24" || { cat > /dev/null exit 0 } case $1 in -P|--provides) while read filename ; do case "${filename}" in *.pc) DIR="`dirname ${filename}`" export PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" # Query the dependencies of the package. $pkgconfig --print-errors --print-provides $filename | while read n r v ; do # We have a dependency. Make a note that we need the pkgconfig # tool for this package. test -z "$v" && test -n "$r" && echo "Error with pkgconfig($n)" >&2 && exit 1 echo "pkgconfig($n)" "$r" "$v" done test ${PIPESTATUS[0]} -ne 0 && echo "$pkgconfig returned an error" >&2 && exit 1 # The dependency on the pkgconfig package itself. ;; esac done ;; -R|--requires) while read filename ; do case "${filename}" in *.pc) DIR="`dirname ${filename}`" export PKG_CONFIG_PATH="$DIR:$DIR/../../share/pkgconfig" $pkgconfig --print-errors --print-requires --print-requires-private $filename | while read n r v ; do test -z "$v" && test -n "$r" && echo "Error with pkgconfig($n)" >&2 && exit 1 echo "pkgconfig($n)" "$r" "$v" done test ${PIPESTATUS[0]} -ne 0 && echo "$pkgconfig returned an error" >&2 && exit 1 esac done ;; esac exit 0