1 From 9bcba7fb28055550961b134e517b695a8cd05b2a Mon Sep 17 00:00:00 2001
2 From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
3 Date: Mon, 3 Aug 2020 17:43:19 -0400
4 Subject: [PATCH] libpjproject.pc: Move external libraries to Libs.private.
6 This is done so users of a shared pjproject library do not get link
7 directives (provided via pkg-config file of pjproject) to link against
8 pjproject's own library dependencies.
10 Static linking with pjproject is preserved by moving the external
11 libraries link directives to the Libs.private field, which is
12 specifically intended for this purpose, via for example:
14 $ pkg-config --static --libs libpjproject
16 * build.mak.in (PJ_INSTALL_LDFLAGS_PRIVATE): New variable.
17 (PJ_INSTALL_LDFLAGS): Filter out PJ_INSTALL_LDFLAGS_PRIVATE entries.
18 * libpjproject.pc.in (Libs.private): New field.
19 * Makefile: Substitute PJ_INSTALL_LDFLAGS_PRIVATE as the value for the
24 libpjproject.pc.in | 1 +
25 3 files changed, 6 insertions(+), 3 deletions(-)
27 diff --git a/Makefile b/Makefile
28 index 3fd5cab40..d67badfa4 100644
31 @@ -54,14 +54,14 @@ doc:
37 LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
38 pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
39 pjnath/lib/libpjnath-$(TARGET_NAME).a \
40 pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
41 pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
42 pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
43 - pjsip/lib/libpjsip-$(TARGET_NAME).a \
44 + pjsip/lib/libpjsip-$(TARGET_NAME).a \
45 pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
46 pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
47 pjsip/lib/libpjsua-$(TARGET_NAME).a
48 @@ -133,6 +133,7 @@ install:
49 sed -e "s!@LIBDIR@!$(libdir)!" | \
50 sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
51 sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
52 + sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \
53 sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
56 diff --git a/build.mak.in b/build.mak.in
57 index a9078bb25..1a18a8513 100644
60 @@ -318,4 +318,5 @@ export PJ_INSTALL_DIR := @prefix@
61 export PJ_INSTALL_INC_DIR := @includedir@
62 export PJ_INSTALL_LIB_DIR := @libdir@
63 export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
64 -export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(APP_LDXXLIBS)
65 +export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@
66 +export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS))
67 diff --git a/libpjproject.pc.in b/libpjproject.pc.in
68 index 30ea05c07..4372d5016 100644
69 --- a/libpjproject.pc.in
70 +++ b/libpjproject.pc.in
71 @@ -10,4 +10,5 @@ Description: Multimedia communication library
72 URL: http://www.pjsip.org
74 Libs: @PJ_INSTALL_LDFLAGS@
75 +Libs.private: @PJ_INSTALL_LDFLAGS_PRIVATE@
76 Cflags: @PJ_INSTALL_CFLAGS@