PKG_CONFIG = $$pkgConfigExecutable() # 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("$$PKGCONFIG_LIB development package 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 }