From efca5e98a396afaf37b71205802f627a34f20e65 Mon Sep 17 00:00:00 2001 From: Olivier Thauvin Date: Tue, 13 Feb 2007 22:26:30 +0000 Subject: - fork pkgconfig dependencies finder script --- Makefile.am | 3 ++- find-provides.in | 4 ++-- find-requires.in | 4 ++-- pkgconfigdeps.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100755 pkgconfigdeps.sh diff --git a/Makefile.am b/Makefile.am index b09bc4c..3a4270b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -25,7 +25,8 @@ pkg_scripts = \ perl.prov \ perl.req \ php.prov \ - php.req + php.req \ + pkgconfigdeps.sh pkg_gscripts = \ find-provides \ diff --git a/find-provides.in b/find-provides.in index 0bb9dc4..38270b6 100755 --- a/find-provides.in +++ b/find-provides.in @@ -65,8 +65,8 @@ done | sort -u # # --- Pkgconfig deps -[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -P | sort -u +[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] && + echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -P | sort -u if [ -n "$LIBTOOLDEP" ]; then # diff --git a/find-requires.in b/find-requires.in index 2c3bc28..8739cc9 100755 --- a/find-requires.in +++ b/find-requires.in @@ -198,8 +198,8 @@ fi if [ -n "$NOTYET" ]; then # # --- Pkgconfig deps -[ -x @RPMLIBDIR@/pkgconfigdeps.sh ] && - echo "$filelist" | tr '[:blank:]' \\n | @RPMLIBDIR@/pkgconfigdeps.sh -R | sort -u +[ -x @RPMVENDORDIR@/pkgconfigdeps.sh ] && + echo "$filelist" | tr '[:blank:]' \\n | @RPMVENDORDIR@/pkgconfigdeps.sh -R | sort -u fi diff --git a/pkgconfigdeps.sh b/pkgconfigdeps.sh new file mode 100755 index 0000000..dc93c80 --- /dev/null +++ b/pkgconfigdeps.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +pkgconfig=/usr/bin/pkg-config +test -x $pkgconfig || { + cat > /dev/null + exit 0 +} + +[ $# -ge 1 ] || { + cat > /dev/null + exit 0 +} + +case $1 in +-P|--provides) + while read filename ; do + case "${filename}" in + *.pc) + # Assume that this file doesn't contain useful information. + needs_pkgconfig=false + # Query the dependencies of the package. + $pkgconfig --print-provides "$filename" 2> /dev/null | while read n r v ; do + # We have a dependency. Make a note that we need the pkgconfig + # tool for this package. + echo "pkgconfig($n)" "$r" "$v" + needs_pkgconfig=true + done + # The dependency on the pkgconfig package itself. + if $needs_pkgconfig ; then + echo pkgconfig + fi + ;; + esac + done + ;; +-R|--requires) + while read filename ; do + case "${filename}" in + *.pc) + $pkgconfig --print-requires "$filename" 2> /dev/null | while read n r v ; do + echo "pkgconfig($n)" "$r" "$v" + done + esac + done + ;; +esac +exit 0 -- cgit v1.2.1