summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-08-02 16:17:05 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-07 16:40:07 +0200
commita97d09a84b5ce6ce62371e3f9cfa19f9c25dcdf8 (patch)
tree39506c9ae54dc7f4b04e60efbe393902b02e5d35 /mkspecs
parent3dfb362782718610ec237f5a8d7ebff759d5fc7b (diff)
add support for PKGCONFIG_PRIVATE
this does the same as PKGCONFIG, only that the libraries end up in LIBS_PRIVATE, not LIBS, which means they don't end up in prl files. in the vast majority of cases, the user should use this new variable. Change-Id: Icb57a1166f1896f51284c64e4047cfc79410e73a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/link_pkgconfig.prf48
1 files changed, 28 insertions, 20 deletions
diff --git a/mkspecs/features/link_pkgconfig.prf b/mkspecs/features/link_pkgconfig.prf
index 20b3e10550..4e36b7c83c 100644
--- a/mkspecs/features/link_pkgconfig.prf
+++ b/mkspecs/features/link_pkgconfig.prf
@@ -1,24 +1,32 @@
PKG_CONFIG = $$pkgConfigExecutable()
-for(PKGCONFIG_LIB, $$list($$unique(PKGCONFIG))) {
- # don't proceed if the .pro asks for a package we don't have!
- !packagesExist($$PKGCONFIG_LIB):error("Package $$PKGCONFIG_LIB not found")
-
- PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags $$PKGCONFIG_LIB)
-
- PKGCONFIG_INCLUDEPATH = $$find(PKGCONFIG_CFLAGS, ^-I.*)
- PKGCONFIG_INCLUDEPATH ~= s/^-I(.*)/\\1/g
-
- PKGCONFIG_DEFINES = $$find(PKGCONFIG_CFLAGS, ^-D.*)
- PKGCONFIG_DEFINES ~= s/^-D(.*)/\\1/g
-
- PKGCONFIG_CFLAGS ~= s/^-[ID].*//g
-
- INCLUDEPATH *= $$PKGCONFIG_INCLUDEPATH
- DEFINES *= $$PKGCONFIG_DEFINES
-
- QMAKE_CXXFLAGS += $$PKGCONFIG_CFLAGS
- QMAKE_CFLAGS += $$PKGCONFIG_CFLAGS
- LIBS += $$system($$PKG_CONFIG --libs $$PKGCONFIG_LIB)
+# qmake supports no empty list elements, so the outer loop is a bit arcane
+pkgsfx =
+for(ever) {
+ pkgvar = PKGCONFIG$$pkgsfx
+ libvar = LIBS$$pkgsfx
+ for(PKGCONFIG_LIB, $$list($$unique($$pkgvar))) {
+ # don't proceed if the .pro asks for a package we don't have!
+ !packagesExist($$PKGCONFIG_LIB):error("Package $$PKGCONFIG_LIB not found")
+
+ PKGCONFIG_CFLAGS = $$system($$PKG_CONFIG --cflags $$PKGCONFIG_LIB)
+
+ PKGCONFIG_INCLUDEPATH = $$find(PKGCONFIG_CFLAGS, ^-I.*)
+ PKGCONFIG_INCLUDEPATH ~= s/^-I(.*)/\\1/g
+
+ PKGCONFIG_DEFINES = $$find(PKGCONFIG_CFLAGS, ^-D.*)
+ PKGCONFIG_DEFINES ~= s/^-D(.*)/\\1/g
+
+ PKGCONFIG_CFLAGS ~= s/^-[ID].*//g
+
+ INCLUDEPATH *= $$PKGCONFIG_INCLUDEPATH
+ DEFINES *= $$PKGCONFIG_DEFINES
+
+ QMAKE_CXXFLAGS += $$PKGCONFIG_CFLAGS
+ QMAKE_CFLAGS += $$PKGCONFIG_CFLAGS
+ $$libvar += $$system($$PKG_CONFIG --libs $$PKGCONFIG_LIB)
+ }
+ !isEmpty(pkgsfx): break()
+ pkgsfx = _PRIVATE
}