[vlc-commits] contrib: helper to merge Libs and Libs.private in pkg-config files
Rémi Denis-Courmont
git at videolan.org
Thu Mar 8 13:27:14 CET 2012
vlc/vlc-2.0 | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Tue Mar 6 18:48:29 2012 +0200| [7b40d6e878875979cf1ccf3203a8c3b72ce0308f] | committer: Jean-Baptiste Kempf
contrib: helper to merge Libs and Libs.private in pkg-config files
pkg-config is unable to autodetect whether a package is linked
statically or not. This helper just moves Libs.private into Libs
manually in case only a static library is built. Most if not all of
contribs are built that way.
(cherry picked from commit 3ce29fe10e2e9813452abbbd1a0aaaea07a57411)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.0.git/?a=commit;h=7b40d6e878875979cf1ccf3203a8c3b72ce0308f
---
contrib/src/main.mak | 1 +
contrib/src/pkg-static.sh | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/contrib/src/main.mak b/contrib/src/main.mak
index 93d647f..afc9126 100644
--- a/contrib/src/main.mak
+++ b/contrib/src/main.mak
@@ -268,6 +268,7 @@ UNPACK = $(RM) -R $@ \
$(foreach f,$(filter %.zip,$^), && unzip $(f))
UNPACK_DIR = $(basename $(basename $(notdir $<)))
APPLY = (cd $(UNPACK_DIR) && patch -p1) <
+pkg_static = (cd $(UNPACK_DIR) && ../../src/pkg-static.sh $(1))
MOVE = mv $(UNPACK_DIR) $@ && touch $@
AUTOMAKE_DATA_DIRS=$(abspath $(dir $(shell which automake))/../share/automake*)
diff --git a/contrib/src/pkg-static.sh b/contrib/src/pkg-static.sh
new file mode 100755
index 0000000..25c2af7
--- /dev/null
+++ b/contrib/src/pkg-static.sh
@@ -0,0 +1,29 @@
+#! /bin/sh
+# Copyright (C) 2012 Rémi Denis-Courmont
+# This file is distributed under the same license as the vlc package.
+
+if test -z "$1" || test -n "$2"; then
+ echo "Usage: $0 <file.pc>" >&2
+ echo "Merges the pkg-config Libs.private stanza into Libs stanza." >&2
+ exit 1
+fi
+
+exec <"$1" >"$1.tmp" || exit $?
+
+PUBLIC=""
+PRIVATE=""
+
+while read LINE; do
+ pub="${LINE#Libs:}"
+ priv="${LINE#Libs.private:}"
+ if test "$pub" != "$LINE"; then
+ PUBLIC="$pub"
+ elif test "$priv" != "$LINE"; then
+ PRIVATE="$priv"
+ else
+ echo "$LINE"
+ fi
+done
+echo "Libs: $PUBLIC $PRIVATE"
+
+mv -f -- "$1.tmp" "$1"
More information about the vlc-commits
mailing list