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
}

