changeset 1608:81169b06f296

update package qt
author Mark Brand <mabrand@mabrand.nl>
date Tue, 01 Mar 2011 15:50:10 +0100
parents 5a9e790a33c2
children 2fac12e1abc5
files src/qt-1-cherrypicks.patch src/qt-1-win32.patch src/qt-2-macosx-gcc-arch.patch src/qt.mk
diffstat 4 files changed, 1385 insertions(+), 1072 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qt-1-cherrypicks.patch	Tue Mar 01 15:50:10 2011 +0100
@@ -0,0 +1,1383 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+Commits backported (cherry-picked) from Qt 4.7 branch.
+http://qt.gitorious.org/qt
+
+From 8f36bff28b648f65845cd56255a6c5b2cb7f8e42 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Fri, 15 Oct 2010 14:56:03 +0200
+Subject: [PATCH 01/12] removed obsolete -qt-gif configure option
+
+Since "-system-gif" is not offered, offering "-qt-gif" is unnecessary
+and perhaps misleading. By default the GIF handler is built from code
+included with Qt, unless suppressed by "-no-gif".
+
+Merge-request: 859
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit dfe9084344d73d59f4569c8be6104ce83ae0df95)
+---
+ configure                        |    7 ++-----
+ tools/configure/configureapp.cpp |    5 +----
+ 2 files changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/configure b/configure
+index 7abe0eb..c159cd4 100755
+--- a/configure
++++ b/configure
+@@ -1570,8 +1570,7 @@ while [ "$#" -gt 0 ]; do
+         fi
+         ;;
+     gif)
+-        [ "$VAL" = "qt" ] && VAL=auto
+-        if [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
++        if [ "$VAL" = "no" ]; then
+             CFG_GIF="$VAL"
+         else
+             UNKNOWN_OPT=yes
+@@ -3544,7 +3543,7 @@ Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
+         [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
+         [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
+         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
+-        [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
++        [-qt-zlib] [-system-zlib] [-no-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
+         [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
+         [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
+         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
+@@ -3773,8 +3772,6 @@ Third Party Libraries:
+                          See http://www.gzip.org/zlib
+ 
+     -no-gif ............ Do not compile GIF reading support.
+- *  -qt-gif ............ Compile GIF reading support.
+-                         See also src/gui/image/qgifhandler_p.h
+ 
+     -no-libtiff ........ Do not compile TIFF support.
+     -qt-libtiff ........ Use the libtiff bundled with Qt.
+diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
+index 15c0ddb..dd5647b 100644
+--- a/tools/configure/configureapp.cpp
++++ b/tools/configure/configureapp.cpp
+@@ -590,8 +590,6 @@ void Configure::parseCmdLine()
+         // Image formats --------------------------------------------
+         else if (configCmdLine.at(i) == "-no-gif")
+             dictionary[ "GIF" ] = "no";
+-        else if (configCmdLine.at(i) == "-qt-gif")
+-            dictionary[ "GIF" ] = "plugin";
+ 
+         else if (configCmdLine.at(i) == "-no-libtiff") {
+             dictionary[ "TIFF"] = "no";
+@@ -1661,7 +1659,7 @@ bool Configure::displayHelp()
+                     "[-no-qmake] [-qmake] [-dont-process] [-process]\n"
+                     "[-no-style-<style>] [-qt-style-<style>] [-redo]\n"
+                     "[-saveconfig <config>] [-loadconfig <config>]\n"
+-                    "[-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libpng]\n"
++                    "[-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng]\n"
+                     "[-qt-libpng] [-system-libpng] [-no-libtiff] [-qt-libtiff]\n"
+                     "[-system-libtiff] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg]\n"
+                     "[-no-libmng] [-qt-libmng] [-system-libmng] [-no-qt3support] [-mmx]\n"
+@@ -1794,7 +1792,6 @@ bool Configure::displayHelp()
+         desc("ZLIB", "system",  "-system-zlib",         "Use zlib from the operating system.\nSee http://www.gzip.org/zlib\n");
+ 
+         desc("GIF", "no",       "-no-gif",              "Do not compile GIF reading support.");
+-        desc("GIF", "auto",     "-qt-gif",              "Compile GIF reading support.\nSee also src/gui/image/qgifhandler_p.h\n");
+ 
+         desc("LIBPNG", "no",    "-no-libpng",           "Do not compile PNG support.");
+         desc("LIBPNG", "qt",    "-qt-libpng",           "Use the libpng bundled with Qt.");
+-- 
+1.7.4.1
+
+
+From 6f97b6dab051bc2899907ac794495bc7542d4337 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 10 Jan 2011 16:41:54 +0100
+Subject: [PATCH 02/12] qmake: fix double directory separator
+
+Merge-request: 2543
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit 89886a34d7c4fdacc472f6e1498bc0769f2302ad)
+---
+ qmake/generators/unix/unixmake2.cpp |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
+index df580fd..81a379f 100644
+--- a/qmake/generators/unix/unixmake2.cpp
++++ b/qmake/generators/unix/unixmake2.cpp
+@@ -1345,8 +1345,13 @@ UnixMakefileGenerator::pkgConfigFileName(bool fixify)
+     if(dot != -1)
+         ret = ret.left(dot);
+     ret += Option::pkgcfg_ext;
+-    if(!project->isEmpty("QMAKE_PKGCONFIG_DESTDIR"))
+-        ret.prepend(project->first("QMAKE_PKGCONFIG_DESTDIR") + Option::dir_sep);
++    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
++    if(!subdir.isEmpty()) {
++        // initOutPaths() appends dir_sep, but just to be safe..
++        if (!subdir.endsWith(Option::dir_sep))
++            ret.prepend(Option::dir_sep);
++        ret.prepend(subdir);
++    }
+     if(fixify) {
+         if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
+             ret.prepend(project->first("DESTDIR"));
+-- 
+1.7.4.1
+
+
+From da69fe08f058ac49788559d333bcec747b94d208 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 10 Jan 2011 16:41:55 +0100
+Subject: [PATCH 03/12] qmake: don't limit pkg-config writing to unix generator
+
+Move pkg-config related methods from unix generator to base class
+so they can be used by other generators too.
+
+Merge-request: 2543
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit 95646b07968604aa69f7e367dab7c9966dc44772)
+---
+ qmake/generators/makefile.cpp       |  178 +++++++++++++++++++++++++++++++++++
+ qmake/generators/makefile.h         |    5 +
+ qmake/generators/unix/unixmake.h    |    4 -
+ qmake/generators/unix/unixmake2.cpp |  178 -----------------------------------
+ 4 files changed, 183 insertions(+), 182 deletions(-)
+
+diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
+index 77b9979..d77f002 100644
+--- a/qmake/generators/makefile.cpp
++++ b/qmake/generators/makefile.cpp
+@@ -3123,4 +3123,182 @@ MakefileGenerator::openOutput(QFile &file, const QString &build) const
+     return false;
+ }
+ 
++QString
++MakefileGenerator::pkgConfigFileName(bool fixify)
++{
++    QString ret = var("TARGET");
++    int slsh = ret.lastIndexOf(Option::dir_sep);
++    if(slsh != -1)
++        ret = ret.right(ret.length() - slsh - 1);
++    if(ret.startsWith("lib"))
++        ret = ret.mid(3);
++    int dot = ret.indexOf('.');
++    if(dot != -1)
++        ret = ret.left(dot);
++    ret += Option::pkgcfg_ext;
++    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
++    if(!subdir.isEmpty()) {
++        // initOutPaths() appends dir_sep, but just to be safe..
++        if (!subdir.endsWith(Option::dir_sep))
++            ret.prepend(Option::dir_sep);
++        ret.prepend(subdir);
++    }
++    if(fixify) {
++        if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
++            ret.prepend(project->first("DESTDIR"));
++        ret = Option::fixPathToLocalOS(fileFixify(ret, qmake_getpwd(), Option::output_dir));
++    }
++    return ret;
++}
++
++QString
++MakefileGenerator::pkgConfigPrefix() const
++{
++    if(!project->isEmpty("QMAKE_PKGCONFIG_PREFIX"))
++        return project->first("QMAKE_PKGCONFIG_PREFIX");
++    return QLibraryInfo::location(QLibraryInfo::PrefixPath);
++}
++
++QString
++MakefileGenerator::pkgConfigFixPath(QString path) const
++{
++    QString prefix = pkgConfigPrefix();
++    if(path.startsWith(prefix))
++        path = path.replace(prefix, "${prefix}");
++    return path;
++}
++
++void
++MakefileGenerator::writePkgConfigFile()
++{
++    QString fname = pkgConfigFileName(), lname = fname;
++    mkdir(fileInfo(fname).path());
++    int slsh = lname.lastIndexOf(Option::dir_sep);
++    if(slsh != -1)
++        lname = lname.right(lname.length() - slsh - 1);
++    QFile ft(fname);
++    if(!ft.open(QIODevice::WriteOnly))
++        return;
++    project->values("ALL_DEPS").append(fileFixify(fname));
++    QTextStream t(&ft);
++
++    QString prefix = pkgConfigPrefix();
++    QString libDir = project->first("QMAKE_PKGCONFIG_LIBDIR");
++    if(libDir.isEmpty())
++        libDir = prefix + Option::dir_sep + "lib" + Option::dir_sep;
++    QString includeDir = project->first("QMAKE_PKGCONFIG_INCDIR");
++    if(includeDir.isEmpty())
++        includeDir = prefix + "/include";
++
++    t << "prefix=" << prefix << endl;
++    t << "exec_prefix=${prefix}\n"
++      << "libdir=" << pkgConfigFixPath(libDir) << "\n"
++      << "includedir=" << pkgConfigFixPath(includeDir) << endl;
++    // non-standard entry. Provides useful info normally only
++    // contained in the internal .qmake.cache file
++    t << varGlue("CONFIG", "qt_config=", " ", "") << endl;
++
++    //extra PKGCONFIG variables
++    const QStringList &pkgconfig_vars = project->values("QMAKE_PKGCONFIG_VARIABLES");
++    for(int i = 0; i < pkgconfig_vars.size(); ++i) {
++        QString var = project->first(pkgconfig_vars.at(i) + ".name"),
++                val = project->values(pkgconfig_vars.at(i) + ".value").join(" ");
++        if(var.isEmpty())
++            continue;
++        if(val.isEmpty()) {
++            const QStringList &var_vars = project->values(pkgconfig_vars.at(i) + ".variable");
++            for(int v = 0; v < var_vars.size(); ++v) {
++                const QStringList &vars = project->values(var_vars.at(v));
++                for(int var = 0; var < vars.size(); ++var) {
++                    if(!val.isEmpty())
++                        val += " ";
++                    val += pkgConfigFixPath(vars.at(var));
++                }
++            }
++        }
++        t << var << "=" << val << endl;
++    }
++
++    t << endl;
++
++    QString name = project->first("QMAKE_PKGCONFIG_NAME");
++    if(name.isEmpty()) {
++        name = project->first("QMAKE_ORIG_TARGET").toLower();
++        name.replace(0, 1, name[0].toUpper());
++    }
++    t << "Name: " << name << endl;
++    QString desc = project->values("QMAKE_PKGCONFIG_DESCRIPTION").join(" ");
++    if(desc.isEmpty()) {
++        if(name.isEmpty()) {
++            desc = project->first("QMAKE_ORIG_TARGET").toLower();
++            desc.replace(0, 1, desc[0].toUpper());
++        } else {
++            desc = name;
++        }
++        if(project->first("TEMPLATE") == "lib") {
++            if(project->isActiveConfig("plugin"))
++               desc += " Plugin";
++            else
++               desc += " Library";
++        } else if(project->first("TEMPLATE") == "app") {
++            desc += " Application";
++        }
++    }
++    t << "Description: " << desc << endl;
++    t << "Version: " << project->first("VERSION") << endl;
++
++    // libs
++    t << "Libs: ";
++    QString pkgConfiglibDir;
++    QString pkgConfiglibName;
++    if (Option::target_mode == Option::TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
++        pkgConfiglibDir = "-F${libdir}";
++        QString bundle;
++        if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
++            bundle = unescapeFilePath(project->first("QMAKE_FRAMEWORK_BUNDLE_NAME"));
++        else
++            bundle = unescapeFilePath(project->first("TARGET"));
++        int suffix = bundle.lastIndexOf(".framework");
++        if (suffix != -1)
++            bundle = bundle.left(suffix);
++        pkgConfiglibName = "-framework " + bundle + " ";
++    } else {
++        pkgConfiglibDir = "-L${libdir}";
++        pkgConfiglibName = "-l" + lname.left(lname.length()-Option::libtool_ext.length());
++    }
++    t << pkgConfiglibDir << " " << pkgConfiglibName << " " << endl;
++
++    QStringList libs;
++    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) {
++        libs = project->values("QMAKE_INTERNAL_PRL_LIBS");
++    } else {
++        libs << "QMAKE_LIBS"; //obvious one
++    }
++    libs << "QMAKE_LIBS_PRIVATE";
++    libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
++    t << "Libs.private: ";
++    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it) {
++        t << project->values((*it)).join(" ") << " ";
++    }
++    t << endl;
++
++    // flags
++    // ### too many
++    t << "Cflags: "
++        // << var("QMAKE_CXXFLAGS") << " "
++      << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
++      << project->values("PRL_EXPORT_CXXFLAGS").join(" ")
++      << project->values("QMAKE_PKGCONFIG_CFLAGS").join(" ")
++        //      << varGlue("DEFINES","-D"," -D"," ")
++      << " -I${includedir}" << endl;
++
++    // requires
++    const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(" ");
++    if (!requires.isEmpty()) {
++        t << "Requires: " << requires << endl;
++    }
++
++    t << endl;
++}
++
+ QT_END_NAMESPACE
+diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
+index b674a44..9b5b4a3 100644
+--- a/qmake/generators/makefile.h
++++ b/qmake/generators/makefile.h
+@@ -105,6 +105,11 @@ protected:
+     virtual bool writeStubMakefile(QTextStream &t);
+     virtual bool writeMakefile(QTextStream &t);
+ 
++    QString pkgConfigPrefix() const;
++    QString pkgConfigFileName(bool fixify=true);
++    QString pkgConfigFixPath(QString) const;
++    void writePkgConfigFile();   // for pkg-config
++
+     //generating subtarget makefiles
+     struct SubTarget
+     {
+diff --git a/qmake/generators/unix/unixmake.h b/qmake/generators/unix/unixmake.h
+index ad54833..b28da82 100644
+--- a/qmake/generators/unix/unixmake.h
++++ b/qmake/generators/unix/unixmake.h
+@@ -51,10 +51,6 @@ class UnixMakefileGenerator : public MakefileGenerator
+     bool init_flag, include_deps;
+     QString libtoolFileName(bool fixify=true);
+     void writeLibtoolFile();     // for libtool
+-    QString pkgConfigPrefix() const;
+-    QString pkgConfigFileName(bool fixify=true);
+-    QString pkgConfigFixPath(QString) const;
+-    void writePkgConfigFile();   // for pkg-config
+     void writePrlFile(QTextStream &);
+ 
+ public:
+diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
+index 81a379f..1846d56 100644
+--- a/qmake/generators/unix/unixmake2.cpp
++++ b/qmake/generators/unix/unixmake2.cpp
+@@ -1332,182 +1332,4 @@ UnixMakefileGenerator::writeLibtoolFile()
+         "libdir='" << Option::fixPathToTargetOS(install_dir, false) << "'\n";
+ }
+ 
+-QString
+-UnixMakefileGenerator::pkgConfigFileName(bool fixify)
+-{
+-    QString ret = var("TARGET");
+-    int slsh = ret.lastIndexOf(Option::dir_sep);
+-    if(slsh != -1)
+-        ret = ret.right(ret.length() - slsh - 1);
+-    if(ret.startsWith("lib"))
+-        ret = ret.mid(3);
+-    int dot = ret.indexOf('.');
+-    if(dot != -1)
+-        ret = ret.left(dot);
+-    ret += Option::pkgcfg_ext;
+-    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
+-    if(!subdir.isEmpty()) {
+-        // initOutPaths() appends dir_sep, but just to be safe..
+-        if (!subdir.endsWith(Option::dir_sep))
+-            ret.prepend(Option::dir_sep);
+-        ret.prepend(subdir);
+-    }
+-    if(fixify) {
+-        if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
+-            ret.prepend(project->first("DESTDIR"));
+-        ret = Option::fixPathToLocalOS(fileFixify(ret, qmake_getpwd(), Option::output_dir));
+-    }
+-    return ret;
+-}
+-
+-QString
+-UnixMakefileGenerator::pkgConfigPrefix() const
+-{
+-    if(!project->isEmpty("QMAKE_PKGCONFIG_PREFIX"))
+-        return project->first("QMAKE_PKGCONFIG_PREFIX");
+-    return QLibraryInfo::location(QLibraryInfo::PrefixPath);
+-}
+-
+-QString
+-UnixMakefileGenerator::pkgConfigFixPath(QString path) const
+-{
+-    QString prefix = pkgConfigPrefix();
+-    if(path.startsWith(prefix))
+-        path = path.replace(prefix, "${prefix}");
+-    return path;
+-}
+-
+-void
+-UnixMakefileGenerator::writePkgConfigFile()
+-{
+-    QString fname = pkgConfigFileName(), lname = fname;
+-    mkdir(fileInfo(fname).path());
+-    int slsh = lname.lastIndexOf(Option::dir_sep);
+-    if(slsh != -1)
+-        lname = lname.right(lname.length() - slsh - 1);
+-    QFile ft(fname);
+-    if(!ft.open(QIODevice::WriteOnly))
+-        return;
+-    project->values("ALL_DEPS").append(fileFixify(fname));
+-    QTextStream t(&ft);
+-
+-    QString prefix = pkgConfigPrefix();
+-    QString libDir = project->first("QMAKE_PKGCONFIG_LIBDIR");
+-    if(libDir.isEmpty())
+-        libDir = prefix + Option::dir_sep + "lib" + Option::dir_sep;
+-    QString includeDir = project->first("QMAKE_PKGCONFIG_INCDIR");
+-    if(includeDir.isEmpty())
+-        includeDir = prefix + "/include";
+-
+-    t << "prefix=" << prefix << endl;
+-    t << "exec_prefix=${prefix}\n"
+-      << "libdir=" << pkgConfigFixPath(libDir) << "\n"
+-      << "includedir=" << pkgConfigFixPath(includeDir) << endl;
+-    // non-standard entry. Provides useful info normally only
+-    // contained in the internal .qmake.cache file
+-    t << varGlue("CONFIG", "qt_config=", " ", "") << endl;
+-
+-    //extra PKGCONFIG variables
+-    const QStringList &pkgconfig_vars = project->values("QMAKE_PKGCONFIG_VARIABLES");
+-    for(int i = 0; i < pkgconfig_vars.size(); ++i) {
+-        QString var = project->first(pkgconfig_vars.at(i) + ".name"),
+-                val = project->values(pkgconfig_vars.at(i) + ".value").join(" ");
+-        if(var.isEmpty())
+-            continue;
+-        if(val.isEmpty()) {
+-            const QStringList &var_vars = project->values(pkgconfig_vars.at(i) + ".variable");
+-            for(int v = 0; v < var_vars.size(); ++v) {
+-                const QStringList &vars = project->values(var_vars.at(v));
+-                for(int var = 0; var < vars.size(); ++var) {
+-                    if(!val.isEmpty())
+-                        val += " ";
+-                    val += pkgConfigFixPath(vars.at(var));
+-                }
+-            }
+-        }
+-        t << var << "=" << val << endl;
+-    }
+-
+-    t << endl;
+-
+-    QString name = project->first("QMAKE_PKGCONFIG_NAME");
+-    if(name.isEmpty()) {
+-        name = project->first("QMAKE_ORIG_TARGET").toLower();
+-        name.replace(0, 1, name[0].toUpper());
+-    }
+-    t << "Name: " << name << endl;
+-    QString desc = project->values("QMAKE_PKGCONFIG_DESCRIPTION").join(" ");
+-    if(desc.isEmpty()) {
+-        if(name.isEmpty()) {
+-            desc = project->first("QMAKE_ORIG_TARGET").toLower();
+-            desc.replace(0, 1, desc[0].toUpper());
+-        } else {
+-            desc = name;
+-        }
+-        if(project->first("TEMPLATE") == "lib") {
+-            if(project->isActiveConfig("plugin"))
+-               desc += " Plugin";
+-            else
+-               desc += " Library";
+-        } else if(project->first("TEMPLATE") == "app") {
+-            desc += " Application";
+-        }
+-    }
+-    t << "Description: " << desc << endl;
+-    t << "Version: " << project->first("VERSION") << endl;
+-
+-    // libs
+-    t << "Libs: ";
+-    QString pkgConfiglibDir;
+-    QString pkgConfiglibName;
+-    if (Option::target_mode == Option::TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
+-        pkgConfiglibDir = "-F${libdir}";
+-        QString bundle;
+-        if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
+-            bundle = unescapeFilePath(project->first("QMAKE_FRAMEWORK_BUNDLE_NAME"));
+-        else
+-            bundle = unescapeFilePath(project->first("TARGET"));
+-        int suffix = bundle.lastIndexOf(".framework");
+-        if (suffix != -1)
+-            bundle = bundle.left(suffix);
+-        pkgConfiglibName = "-framework " + bundle + " ";
+-    } else {
+-        pkgConfiglibDir = "-L${libdir}";
+-        pkgConfiglibName = "-l" + lname.left(lname.length()-Option::libtool_ext.length());
+-    }
+-    t << pkgConfiglibDir << " " << pkgConfiglibName << " " << endl;
+-
+-    QStringList libs;
+-    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) {
+-        libs = project->values("QMAKE_INTERNAL_PRL_LIBS");
+-    } else {
+-        libs << "QMAKE_LIBS"; //obvious one
+-    }
+-    libs << "QMAKE_LIBS_PRIVATE";
+-    libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
+-    t << "Libs.private: ";
+-    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it) {
+-        t << project->values((*it)).join(" ") << " ";
+-    }
+-    t << endl;
+-
+-    // flags
+-    // ### too many
+-    t << "Cflags: "
+-        // << var("QMAKE_CXXFLAGS") << " "
+-      << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
+-      << project->values("PRL_EXPORT_CXXFLAGS").join(" ")
+-      << project->values("QMAKE_PKGCONFIG_CFLAGS").join(" ")
+-        //      << varGlue("DEFINES","-D"," -D"," ")
+-      << " -I${includedir}" << endl;
+-
+-    // requires
+-    const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(" ");
+-    if (!requires.isEmpty()) {
+-        t << "Requires: " << requires << endl;
+-    }
+-
+-    t << endl;
+-}
+-
+ QT_END_NAMESPACE
+-- 
+1.7.4.1
+
+
+From c870095011276897127ed801570d0b4cce79d552 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 10 Jan 2011 16:41:56 +0100
+Subject: [PATCH 04/12] qmake: write and install pkg-config files for mingw
+
+Merge-request: 2543
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit f18aca79a233c71f7a4bc72c9e31de948ba43c31)
+---
+ qmake/generators/win32/mingw_make.cpp  |    3 +++
+ qmake/generators/win32/winmakefile.cpp |   12 ++++++++++++
+ 2 files changed, 15 insertions(+), 0 deletions(-)
+
+diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
+index 3202cb8..492b584 100644
+--- a/qmake/generators/win32/mingw_make.cpp
++++ b/qmake/generators/win32/mingw_make.cpp
+@@ -142,6 +142,9 @@ bool MingwMakefileGenerator::writeMakefile(QTextStream &t)
+ 
+     if(project->first("TEMPLATE") == "app" ||
+        project->first("TEMPLATE") == "lib") {
++        if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == "lib")
++            writePkgConfigFile();
++
+         if(Option::mkfile::do_stub_makefile) {
+             t << "QMAKE    = " << var("QMAKE_QMAKE") << endl;
+             QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
+diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
+index 8af7ddd..6d0a5c4 100644
+--- a/qmake/generators/win32/winmakefile.cpp
++++ b/qmake/generators/win32/winmakefile.cpp
+@@ -803,6 +803,18 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
+                 uninst.append("\n\t");
+             uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");
+         }
++        if(project->isActiveConfig("create_pc")) {
++            QString dst_pc = pkgConfigFileName(false);
++            if (!dst_pc.isEmpty()) {
++                dst_pc = filePrefixRoot(root, targetdir + dst_pc);
++                if(!ret.isEmpty())
++                    ret += "\n\t";
++                ret += "-$(INSTALL_FILE) \"" + pkgConfigFileName(true) + "\" \"" + dst_pc + "\"";
++                if(!uninst.isEmpty())
++                    uninst.append("\n\t");
++                uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");
++            }
++        }
+         if(project->isActiveConfig("shared") && !project->isActiveConfig("plugin")) {
+             QString lib_target = getLibTarget();
+             lib_target.remove('"');
+-- 
+1.7.4.1
+
+
+From 8414d5630e66546be5d5eb0e832c80dcddea5d77 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 10 Jan 2011 16:41:57 +0100
+Subject: [PATCH 05/12] qt project files: create pkg-config files for mingw
+
+This is mostly the same as for unix.
+
+Merge-request: 2543
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit 45fe2dddc3a0677b9ec9fce09f07cd4129e37afa)
+---
+ src/3rdparty/webkit/WebCore/WebCore.pro            |    4 +---
+ src/dbus/dbus.pro                                  |    2 +-
+ src/declarative/declarative.pro                    |    2 +-
+ src/gui/gui.pro                                    |    2 +-
+ src/multimedia/multimedia.pro                      |    2 +-
+ src/network/network.pro                            |    2 +-
+ src/opengl/opengl.pro                              |    2 +-
+ src/openvg/openvg.pro                              |    2 +-
+ src/phonon/phonon.pro                              |    2 +-
+ src/qbase.pri                                      |    8 ++++++++
+ src/qt3support/qt3support.pro                      |    2 +-
+ src/script/script.pro                              |    2 +-
+ src/scripttools/scripttools.pro                    |    2 +-
+ src/sql/sql.pro                                    |    2 +-
+ src/svg/svg.pro                                    |    2 +-
+ src/xml/xml.pro                                    |    2 +-
+ src/xmlpatterns/xmlpatterns.pro                    |    2 +-
+ .../lib/fulltextsearch/fulltextsearch.pro          |    2 +-
+ tools/assistant/lib/lib.pro                        |    2 +-
+ tools/designer/src/components/lib/lib.pro          |    2 +-
+ tools/designer/src/lib/lib.pro                     |    2 +-
+ tools/designer/src/uitools/uitools.pro             |    2 +-
+ 22 files changed, 29 insertions(+), 23 deletions(-)
+
+diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
+index 37d216d..008bef7 100644
+--- a/src/3rdparty/webkit/WebCore/WebCore.pro
++++ b/src/3rdparty/webkit/WebCore/WebCore.pro
+@@ -85,9 +85,7 @@ moduleFile=$$PWD/../WebKit/qt/qt_webkit_version.pri
+ isEmpty(QT_BUILD_TREE):include($$moduleFile)
+ VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
+ 
+-unix {
+-    QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
+-}
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
+ 
+ unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections -fdata-sections 
+ unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections
+diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
+index 46a723a..52ed217 100644
+--- a/src/dbus/dbus.pro
++++ b/src/dbus/dbus.pro
+@@ -12,7 +12,7 @@ contains(QT_CONFIG, dbus-linked) {
+ }
+ 
+ # INCLUDEPATH += .
+-unix { 
++unix|win32-g++* {
+     QMAKE_PKGCONFIG_DESCRIPTION = Qt \
+         DBus \
+         module
+diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
+index 1ad888b..4ed4f9f 100644
+--- a/src/declarative/declarative.pro
++++ b/src/declarative/declarative.pro
+@@ -6,7 +6,7 @@ DEFINES   += QT_BUILD_DECLARATIVE_LIB QT_NO_URL_CAST_FROM_STRING
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
+ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
+ 
+ exists("qdeclarative_enable_gcov") {
+     QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors
+diff --git a/src/gui/gui.pro b/src/gui/gui.pro
+index 4d51fa8..05d961c 100644
+--- a/src/gui/gui.pro
++++ b/src/gui/gui.pro
+@@ -7,7 +7,7 @@ irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused
+ 
+ !win32:!embedded:!mac:!symbian:CONFIG      += x11
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro
+index 852322d..e827cdd 100644
+--- a/src/multimedia/multimedia.pro
++++ b/src/multimedia/multimedia.pro
+@@ -4,7 +4,7 @@ QT = core gui
+ 
+ DEFINES += QT_BUILD_MULTIMEDIA_LIB QT_NO_USING_NAMESPACE
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/network/network.pro b/src/network/network.pro
+index 7ed7d3a..948922b 100644
+--- a/src/network/network.pro
++++ b/src/network/network.pro
+@@ -13,7 +13,7 @@ DEFINES += QT_BUILD_NETWORK_LIB QT_NO_USING_NAMESPACE
+ QT = core
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x64000000
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ include(../qbase.pri)
+ include(access/access.pri)
+diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
+index 0e82467..d467148 100644
+--- a/src/opengl/opengl.pro
++++ b/src/opengl/opengl.pro
+@@ -7,7 +7,7 @@ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x63000000
+ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
+ irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/openvg/openvg.pro b/src/openvg/openvg.pro
+index c05af90..e7ed890 100644
+--- a/src/openvg/openvg.pro
++++ b/src/openvg/openvg.pro
+@@ -42,7 +42,7 @@ symbian {
+ 
+ include(../qbase.pri)
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
+ symbian:TARGET.UID3 = 0x2001E62F
+ 
+ !isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG
+diff --git a/src/phonon/phonon.pro b/src/phonon/phonon.pro
+index 7f79d0b..b16c5a1 100644
+--- a/src/phonon/phonon.pro
++++ b/src/phonon/phonon.pro
+@@ -11,7 +11,7 @@ DEFINES += MAKE_PHONON_LIB
+ 
+ PHONON_DIR = $$QT_SOURCE_TREE/src/3rdparty/phonon/phonon
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
+ 
+ # Input
+ HEADERS += $$PHONON_DIR/abstractaudiooutput.h \
+diff --git a/src/qbase.pri b/src/qbase.pri
+index 75da3dc..b50f9c6 100644
+--- a/src/qbase.pri
++++ b/src/qbase.pri
+@@ -152,6 +152,14 @@ unix:!symbian {
+    QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace prefix_replace
+ }
+ 
++win32-g++* {
++   CONFIG += create_pc
++   QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
++   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
++   QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
++   QMAKE_PKGCONFIG_DESTDIR = pkgconfig
++}
++
+ contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE
+ DEFINES *= QT_NO_CAST_TO_ASCII QT_ASCII_CAST_WARNINGS
+ contains(QT_CONFIG, qt3support):DEFINES *= QT3_SUPPORT
+diff --git a/src/qt3support/qt3support.pro b/src/qt3support/qt3support.pro
+index a30117c..1e0717d 100644
+--- a/src/qt3support/qt3support.pro
++++ b/src/qt3support/qt3support.pro
+@@ -21,7 +21,7 @@ include(canvas/canvas.pri)
+ include(network/network.pri)
+ include(painting/painting.pri)
+ 
+-unix {
++unix|win32-g++* {
+    QMAKE_PKGCONFIG_CFLAGS += -DQT3_SUPPORT
+    QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork QtSql
+ }
+diff --git a/src/script/script.pro b/src/script/script.pro
+index 63917b1..b5a2e70 100644
+--- a/src/script/script.pro
++++ b/src/script/script.pro
+@@ -7,7 +7,7 @@ DEFINES   += QT_NO_USING_NAMESPACE
+ DEFINES   += QLALR_NO_QSCRIPTGRAMMAR_DEBUG_INFO
+ #win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000       ### FIXME
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/scripttools/scripttools.pro b/src/scripttools/scripttools.pro
+index b1df7aa..061dea5 100644
+--- a/src/scripttools/scripttools.pro
++++ b/src/scripttools/scripttools.pro
+@@ -5,7 +5,7 @@ DEFINES   += QT_BUILD_SCRIPTTOOLS_LIB
+ DEFINES   += QT_NO_USING_NAMESPACE
+ #win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtScript
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtScript
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/sql/sql.pro b/src/sql/sql.pro
+index a02b0f4..81aa3c0 100644
+--- a/src/sql/sql.pro
++++ b/src/sql/sql.pro
+@@ -5,7 +5,7 @@ DEFINES += QT_BUILD_SQL_LIB
+ DEFINES += QT_NO_USING_NAMESPACE
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x62000000
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/svg/svg.pro b/src/svg/svg.pro
+index 7b5251a..79f284a 100644
+--- a/src/svg/svg.pro
++++ b/src/svg/svg.pro
+@@ -6,7 +6,7 @@ DEFINES   += QT_NO_USING_NAMESPACE
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
+ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/xml/xml.pro b/src/xml/xml.pro
+index 8d1bf68..019153c 100644
+--- a/src/xml/xml.pro
++++ b/src/xml/xml.pro
+@@ -4,7 +4,7 @@ QT         = core
+ DEFINES   += QT_BUILD_XML_LIB QT_NO_USING_NAMESPACE
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x61000000
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ include(../qbase.pri)
+ 
+diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro
+index e50d184..d22f417 100644
+--- a/src/xmlpatterns/xmlpatterns.pro
++++ b/src/xmlpatterns/xmlpatterns.pro
+@@ -5,7 +5,7 @@ QT = core \
+ DEFINES += QT_BUILD_XMLPATTERNS_LIB \
+     QT_NO_USING_NAMESPACE
+ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x61000000
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore \
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore \
+     QtNetwork
+ include(../qbase.pri)
+ PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
+diff --git a/tools/assistant/lib/fulltextsearch/fulltextsearch.pro b/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
+index 4d2fddb..d0e7a87 100644
+--- a/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
++++ b/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
+@@ -23,7 +23,7 @@ contains(QT_CONFIG, reduce_exports) {
+     linux*-g++*:DEFINES += _GLIBCXX_EXTERN_TEMPLATE=0
+ }
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
+ 
+ # impossible to disable exceptions in clucene atm
+ CONFIG(exceptions_off) {
+diff --git a/tools/assistant/lib/lib.pro b/tools/assistant/lib/lib.pro
+index 26d3456..03821b2 100644
+--- a/tools/assistant/lib/lib.pro
++++ b/tools/assistant/lib/lib.pro
+@@ -19,7 +19,7 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+     win32:qclucene = $${qclucene}d
+ }
+ linux-lsb-g++:LIBS_PRIVATE += --lsb-shared-libs=$$qclucene
+-unix:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
+     QtSql \
+     QtXml
+ LIBS_PRIVATE += -l$$qclucene
+diff --git a/tools/designer/src/components/lib/lib.pro b/tools/designer/src/components/lib/lib.pro
+index 0ada845..50a8b00 100644
+--- a/tools/designer/src/components/lib/lib.pro
++++ b/tools/designer/src/components/lib/lib.pro
+@@ -64,7 +64,7 @@ PRECOMPILED_HEADER= lib_pch.h
+ include(../../sharedcomponents.pri)
+ include(../component.pri)
+ 
+-unix {
++unix|win32-g++* {
+     QMAKE_PKGCONFIG_REQUIRES = QtCore QtDesigner QtGui QtXml
+     contains(QT_CONFIG, script): QMAKE_PKGCONFIG_REQUIRES += QtScript
+ }
+diff --git a/tools/designer/src/lib/lib.pro b/tools/designer/src/lib/lib.pro
+index 495976d..3ba6f52 100644
+--- a/tools/designer/src/lib/lib.pro
++++ b/tools/designer/src/lib/lib.pro
+@@ -13,7 +13,7 @@ isEmpty(QT_MAJOR_VERSION) {
+    VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}
+ }
+ 
+-unix:QMAKE_PKGCONFIG_REQUIRES += QtXml
++unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES += QtXml
+ 
+ include(../../../../src/qt_targets.pri)
+ QMAKE_TARGET_PRODUCT = Designer
+diff --git a/tools/designer/src/uitools/uitools.pro b/tools/designer/src/uitools/uitools.pro
+index 7b94587..6e0a247 100644
+--- a/tools/designer/src/uitools/uitools.pro
++++ b/tools/designer/src/uitools/uitools.pro
+@@ -35,7 +35,7 @@ INSTALLS        += quitools_headers
+ target.path=$$[QT_INSTALL_LIBS]
+ INSTALLS        += target
+ 
+-unix {
++unix|win32-g++* {
+    CONFIG     += create_pc
+    QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
+    QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
+-- 
+1.7.4.1
+
+
+From 1cf4420ae5221d649880cc0d2e1b1895a19ad106 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 10 Jan 2011 20:21:05 +0100
+Subject: [PATCH 06/12] Fix static build on Windows with MinGW.
+
+Q_DECL_IMPORT is still __declspec(dllimport), which is unsuitable for
+static code.
+
+Commit edbc656b changed Q_DECL_IMPORT_IMPORT to Q_CORE_EXPORT when
+declaring QtCore functions in svg.
+
+Now we change Q_DECL_IMPORT to Q_GUI_EXPORT when declaring QtGui
+functions into opengl and openvg.
+
+Also removed the redundant keyword "extern" from the function declarations.
+
+Merge-request: 2540
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+Reviewed-by: mariusSO
+(cherry picked from commit 7ec1c27e662dfd4393491f90bfcb9c868cc0a23f)
+---
+ .../gl2paintengineex/qpaintengineex_opengl2.cpp    |    4 ++--
+ src/opengl/qglframebufferobject.cpp                |    4 ++--
+ src/opengl/qglpixelbuffer.cpp                      |    4 ++--
+ src/opengl/qglpixmapfilter.cpp                     |    6 +++---
+ src/opengl/qpaintengine_opengl.cpp                 |    2 +-
+ src/opengl/qpixmapdata_gl.cpp                      |    4 ++--
+ src/openvg/qpaintengine_vg.cpp                     |    8 ++++----
+ src/openvg/qpixmapdata_vg.cpp                      |    4 ++--
+ 8 files changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+index 251fcb9..34f4e75 100644
+--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
++++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+@@ -102,7 +102,7 @@ extern Q_GUI_EXPORT bool qt_cleartype_enabled;
+ extern bool qt_applefontsmoothing_enabled;
+ #endif
+ 
+-Q_DECL_IMPORT extern QImage qt_imageForBrush(int brushStyle, bool invert);
++Q_GUI_EXPORT QImage qt_imageForBrush(int brushStyle, bool invert);
+ 
+ ////////////////////////////////// Private Methods //////////////////////////////////////////
+ 
+@@ -1154,7 +1154,7 @@ void QGL2PaintEngineEx::fill(const QVectorPath &path, const QBrush &brush)
+     d->fill(path);
+ }
+ 
+-extern Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
++Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
+ 
+ 
+ void QGL2PaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
+diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp
+index 6faa645..d57ffc5 100644
+--- a/src/opengl/qglframebufferobject.cpp
++++ b/src/opengl/qglframebufferobject.cpp
+@@ -1171,8 +1171,8 @@ void QGLFramebufferObject::drawTexture(const QPointF &point, QMacCompatGLuint te
+ }
+ #endif
+ 
+-Q_DECL_IMPORT extern int qt_defaultDpiX();
+-Q_DECL_IMPORT extern int qt_defaultDpiY();
++Q_GUI_EXPORT int qt_defaultDpiX();
++Q_GUI_EXPORT int qt_defaultDpiY();
+ 
+ /*! \reimp */
+ int QGLFramebufferObject::metric(PaintDeviceMetric metric) const
+diff --git a/src/opengl/qglpixelbuffer.cpp b/src/opengl/qglpixelbuffer.cpp
+index 931f701..815afee 100644
+--- a/src/opengl/qglpixelbuffer.cpp
++++ b/src/opengl/qglpixelbuffer.cpp
+@@ -416,8 +416,8 @@ QPaintEngine *QGLPixelBuffer::paintEngine() const
+ #endif
+ }
+ 
+-Q_DECL_IMPORT extern int qt_defaultDpiX();
+-Q_DECL_IMPORT extern int qt_defaultDpiY();
++Q_GUI_EXPORT int qt_defaultDpiX();
++Q_GUI_EXPORT int qt_defaultDpiY();
+ 
+ /*! \reimp */
+ int QGLPixelBuffer::metric(PaintDeviceMetric metric) const
+diff --git a/src/opengl/qglpixmapfilter.cpp b/src/opengl/qglpixmapfilter.cpp
+index 5305e10..eeb791f 100644
+--- a/src/opengl/qglpixmapfilter.cpp
++++ b/src/opengl/qglpixmapfilter.cpp
+@@ -63,8 +63,8 @@
+ QT_BEGIN_NAMESPACE
+ 
+ // qpixmapfilter.cpp
+-Q_DECL_IMPORT void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0);
+-Q_DECL_IMPORT QImage qt_halfScaled(const QImage &source);
++Q_GUI_EXPORT void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0);
++Q_GUI_EXPORT QImage qt_halfScaled(const QImage &source);
+ 
+ void QGLPixmapFilterBase::bindTexture(const QPixmap &src) const
+ {
+@@ -436,7 +436,7 @@ static inline uint nextMultiple(uint x, uint multiplier)
+     return x + multiplier - mod;
+ }
+ 
+-Q_DECL_IMPORT void qt_memrotate90_gl(const quint32 *src, int srcWidth, int srcHeight, int srcStride,
++Q_GUI_EXPORT void qt_memrotate90_gl(const quint32 *src, int srcWidth, int srcHeight, int srcStride,
+                        quint32 *dest, int dstStride);
+ 
+ bool QGLPixmapBlurFilter::processGL(QPainter *painter, const QPointF &pos, const QPixmap &src, const QRectF &) const
+diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp
+index 0b0f910..c04311d 100644
+--- a/src/opengl/qpaintengine_opengl.cpp
++++ b/src/opengl/qpaintengine_opengl.cpp
+@@ -79,7 +79,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-Q_DECL_IMPORT extern QImage qt_imageForBrush(int brushStyle, bool invert); //in qbrush.cpp
++Q_GUI_EXPORT QImage qt_imageForBrush(int brushStyle, bool invert); //in qbrush.cpp
+ #ifdef QT_MAC_USE_COCOA
+ extern void *qt_current_nsopengl_context(); // qgl_mac.mm
+ #endif
+diff --git a/src/opengl/qpixmapdata_gl.cpp b/src/opengl/qpixmapdata_gl.cpp
+index 0ac647c..d901ab8 100644
+--- a/src/opengl/qpixmapdata_gl.cpp
++++ b/src/opengl/qpixmapdata_gl.cpp
+@@ -739,8 +739,8 @@ QGLTexture* QGLPixmapData::texture() const
+     return &m_texture;
+ }
+ 
+-Q_DECL_IMPORT extern int qt_defaultDpiX();
+-Q_DECL_IMPORT extern int qt_defaultDpiY();
++Q_GUI_EXPORT int qt_defaultDpiX();
++Q_GUI_EXPORT int qt_defaultDpiY();
+ 
+ int QGLPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const
+ {
+diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
+index c2a4c9b..d273d33 100644
+--- a/src/openvg/qpaintengine_vg.cpp
++++ b/src/openvg/qpaintengine_vg.cpp
+@@ -77,8 +77,8 @@ static const qreal aliasedCoordinateDelta = 0.5 - 0.015625;
+ 
+ #if !defined(QVG_NO_DRAW_GLYPHS)
+ 
+-Q_DECL_IMPORT extern int qt_defaultDpiX();
+-Q_DECL_IMPORT extern int qt_defaultDpiY();
++Q_GUI_EXPORT int qt_defaultDpiX();
++Q_GUI_EXPORT int qt_defaultDpiY();
+ 
+ class QVGPaintEnginePrivate;
+ 
+@@ -526,7 +526,7 @@ void QVGPaintEnginePrivate::setTransform
+     vgLoadMatrix(mat);
+ }
+ 
+-Q_DECL_IMPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale);
++Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale);
+ 
+ void QVGPaintEnginePrivate::updateTransform(QPaintDevice *pdev)
+ {
+@@ -994,7 +994,7 @@ VGPath QVGPaintEnginePrivate::roundedRectPath(const QRectF &rect, qreal xRadius,
+     return vgpath;
+ }
+ 
+-Q_DECL_IMPORT extern QImage qt_imageForBrush(int style, bool invert);
++Q_GUI_EXPORT QImage qt_imageForBrush(int style, bool invert);
+ 
+ static QImage colorizeBitmap(const QImage &image, const QColor &color)
+ {
+diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
+index ee5c7d9..cdff46c 100644
+--- a/src/openvg/qpixmapdata_vg.cpp
++++ b/src/openvg/qpixmapdata_vg.cpp
+@@ -412,8 +412,8 @@ void QVGPixmapData::reclaimImages()
+     destroyImages();
+ }
+ 
+-Q_DECL_IMPORT extern int qt_defaultDpiX();
+-Q_DECL_IMPORT extern int qt_defaultDpiY();
++Q_GUI_EXPORT int qt_defaultDpiX();
++Q_GUI_EXPORT int qt_defaultDpiY();
+ 
+ int QVGPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const
+ {
+-- 
+1.7.4.1
+
+
+From e285e9993d4f2c6823782840d89f44c1bab74afa Mon Sep 17 00:00:00 2001
+From: Bernhard Rosenkraenzer <br@blankpage.ch>
+Date: Thu, 27 Jan 2011 13:48:13 +0100
+Subject: [PATCH 07/12] Allow the user to select imageformats to be built as plugin vs internal
+
+This adds what is already there for different plugin types to
+imageformats plugins -- allowing the user to configure which
+image formats will be built into Qt and which will be built as
+plugins.
+
+Merge-request: 1028
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+(cherry picked from commit a6167267d302b97b94fd350df4b27dc7c9a20ef4)
+---
+ configure                        |   24 +++++++++++++++++++++++-
+ tools/configure/configureapp.cpp |   12 ++++++++++++
+ 2 files changed, 35 insertions(+), 1 deletions(-)
+
+diff --git a/configure b/configure
+index c159cd4..207dcc1 100755
+--- a/configure
++++ b/configure
+@@ -908,6 +908,16 @@ if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
+   CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
+ fi
+ 
++CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
++if [ -d "$relpath/src/plugins/imageformats" ]; then
++    for a in "$relpath/src/plugins/imageformats/"*; do
++        if [ -d "$a" ]; then
++            base_a=`basename "$a"`
++            CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
++        fi
++    done
++fi
++
+ #-------------------------------------------------------------------------------
+ # parse command line arguments
+ #-------------------------------------------------------------------------------
+@@ -2060,7 +2070,7 @@ while [ "$#" -gt 0 ]; do
+             UNKNOWN_OPT=yes
+         fi
+         ;;
+-    sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
++    sql-*|gfx-*|decoration-*|kbd-*|mouse-*|imageformat-*)
+         # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
+         # if autoconf style options were used, $VAL can be "yes" or "no"
+         [ "$VAL" = "yes" ] && VAL=qt
+@@ -2102,6 +2112,13 @@ while [ "$#" -gt 0 ]; do
+ 		avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
+ 	    fi
+             ;;
++        imageformat)
++            avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
++            if [ "$OPT" != "plugin" ]; then
++                # png is always built in
++                avail="$avail png"
++            fi
++            ;;
+         *)
+             avail=""
+             echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
+@@ -2122,6 +2139,11 @@ while [ "$#" -gt 0 ]; do
+             # set the CFG_SQL_driver
+             eval "CFG_SQL_$VAL=\$OPT"
+             continue
++        elif [ "$VAR" = "imageformat" ]; then
++            [ "$OPT" = "qt" ] && OPT=yes
++            VAL="`echo $VAL |tr a-z A-Z`"
++            eval "CFG_$VAL=$OPT"
++            continue
+         fi
+ 
+         if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
+diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
+index dd5647b..b6e80ea 100644
+--- a/tools/configure/configureapp.cpp
++++ b/tools/configure/configureapp.cpp
+@@ -437,6 +437,7 @@ void Configure::parseCmdLine()
+ {
+     int argCount = configCmdLine.size();
+     int i = 0;
++    const QStringList imageFormats = QStringList() << "gif" << "png" << "mng" << "jpeg" << "tiff";
+ 
+ #if !defined(EVAL)
+     if (argCount < 1) // skip rest if no arguments
+@@ -829,6 +830,17 @@ void Configure::parseCmdLine()
+             dictionary[ "SQL_IBASE" ] = "plugin";
+         else if (configCmdLine.at(i) == "-no-sql-ibase")
+             dictionary[ "SQL_IBASE" ] = "no";
++
++        // Image formats --------------------------------------------
++        else if (configCmdLine.at(i).startsWith("-qt-imageformat-") &&
++                 imageFormats.contains(configCmdLine.at(i).section('-', 3)))
++            dictionary[ configCmdLine.at(i).section('-', 3).toUpper() ] = "yes";
++        else if (configCmdLine.at(i).startsWith("-plugin-imageformat-") &&
++                 imageFormats.contains(configCmdLine.at(i).section('-', 3)))
++            dictionary[ configCmdLine.at(i).section('-', 3).toUpper() ] = "plugin";
++        else if (configCmdLine.at(i).startsWith("-no-imageformat-") &&
++                 imageFormats.contains(configCmdLine.at(i).section('-', 3)))
++            dictionary[ configCmdLine.at(i).section('-', 3).toUpper() ] = "no";
+ #endif
+         // IDE project generation -----------------------------------
+         else if (configCmdLine.at(i) == "-no-dsp")
+-- 
+1.7.4.1
+
+
+From 095583fb68a8ae02fd16790eaaa922693d268443 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 16 Nov 2010 20:06:28 +0100
+Subject: [PATCH 08/12] explicitly include -llcms for -lmng (mingw-cross-env specific)
+
+---
+ src/gui/image/qmnghandler.pri |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/gui/image/qmnghandler.pri b/src/gui/image/qmnghandler.pri
+index ffb98de..c213e09 100644
+--- a/src/gui/image/qmnghandler.pri
++++ b/src/gui/image/qmnghandler.pri
+@@ -3,7 +3,7 @@ INCLUDEPATH *= $$PWD
+ HEADERS += $$PWD/qmnghandler_p.h
+ SOURCES += $$PWD/qmnghandler.cpp
+ contains(QT_CONFIG, system-mng) {
+-        if(unix|win32-g++*):LIBS += -lmng
++        if(unix|win32-g++*):LIBS += -lmng -llcms
+         else:win32:         LIBS += libmng.lib
+ } else {
+     include($$PWD/../../3rdparty/libmng.pri)
+-- 
+1.7.4.1
+
+
+From 3baf871e135d70edbc2431038708886d2795b8b3 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 5 Jun 2010 23:41:04 +0200
+Subject: [PATCH 09/12] added missing INSTALLS to JavaScriptCore.pro for static libjscore (mingw-cross-env specific)
+
+For static build of Qt on win32-g++*, applications using webkit
+link to libjscore.a.
+---
+ .../webkit/JavaScriptCore/JavaScriptCore.pro       |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
+index a805170..027eb0f 100644
+--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
++++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
+@@ -14,6 +14,12 @@ QT -= gui
+ 
+ CONFIG += depend_includepath
+ 
++static:win32-g++* {
++    # applications must link to static libjscore
++    target.path = $$[QT_INSTALL_LIBS]
++    INSTALLS += target
++}
++
+ contains(QT_CONFIG, embedded):CONFIG += embedded
+ 
+ CONFIG(QTDIR_build) {
+-- 
+1.7.4.1
+
+
+From 9e5d4702daa1168ab14ba936014dd6a7bb5671c9 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 9 Nov 2010 20:09:45 +0100
+Subject: [PATCH 10/12] Partially restored support for static linking of QtWebKit (mingw-cross-env specific)
+
+Support was removed by 4221d629e2cf37ee8c5ba7cb595b05ab8c82f113.
+Static QtWebkit might be supported by mingw-cross-env.
+---
+ configure |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure b/configure
+index 207dcc1..b10b0a2 100755
+--- a/configure
++++ b/configure
+@@ -7179,12 +7179,6 @@ if [ "$CFG_GUI" = "no" ]; then
+     canBuildWebKit="no"
+ fi
+ 
+-if [ "$CFG_SHARED" = "no" ]; then
+-    echo
+-    echo "WARNING: Using static linking will disable the WebKit module."
+-    echo
+-    canBuildWebKit="no"
+-fi
+ 
+ CFG_CONCURRENT="yes"
+ if [ "$canBuildQtConcurrent" = "no" ]; then
+-- 
+1.7.4.1
+
+
+From 61064254a0c5c2c3785909acf60cabdbdcb18d5b Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 6 Jan 2011 14:21:32 +0100
+Subject: [PATCH 11/12] pkg-config file for jscore (mingw-cross-env specific)
+
+---
+ .../webkit/JavaScriptCore/JavaScriptCore.pro       |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
+index 027eb0f..44bbc3f 100644
+--- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
++++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
+@@ -236,3 +236,11 @@ SOURCES += \
+ 
+ # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec
+ *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
++
++win32-g++-* {
++   CONFIG += create_pc
++   QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
++   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
++   QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
++   QMAKE_PKGCONFIG_DESTDIR = pkgconfig
++}
+-- 
+1.7.4.1
+
+
+From 0ad5aac2fdc0f2e81f94c92867bb4e15b3da3ddf Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Mon, 21 Feb 2011 22:22:04 +0100
+Subject: [PATCH 12/12] workaround for native build on OSX (mingw-cross-env specific)
+
+The native build complains about:
+"You are building a 64-bit application, but using a 32-bit version of
+Qt. Check your build configuration."
+---
+ mkspecs/macx-g++/qmake.conf |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf
+index 4464686..ba0c45b 100644
+--- a/mkspecs/macx-g++/qmake.conf
++++ b/mkspecs/macx-g++/qmake.conf
+@@ -13,8 +13,8 @@ CONFIG			+= qt warn_on release app_bundle incremental global_init_link_order lib
+ QT			+= core gui
+ QMAKE_INCREMENTAL_STYLE = sublib
+ 
+-QMAKE_CC		 = gcc
+-QMAKE_CXX		 = g++
++QMAKE_CC		 = gcc -arch i386
++QMAKE_CXX		 = g++ -arch i386
+ 
+ include(../common/mac-g++.conf)
+ 
+-- 
+1.7.4.1
+
--- a/src/qt-1-win32.patch	Wed Mar 02 01:40:46 2011 +1100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1050 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-Commits backported (cherry-picked) from Qt 4.7 branch.
-http://qt.gitorious.org/qt
-
-From 7768549da9215c85baa9bd983937e5c8010fdedf Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Mon, 11 Oct 2010 17:15:44 +0200
-Subject: [PATCH 01/11] use specified pkg-config
-
-Respect the pkg-config tool specified in qmake.conf. This is
-useful when crossbuilding.
-
-Merge-request: 850
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-(cherry picked from commit 89a853370d94373c6ef1c9fabcfb5bf19c20f7c9)
-
-diff --git a/mkspecs/features/link_pkgconfig.prf b/mkspecs/features/link_pkgconfig.prf
-index 4c528aa..d70e5de 100644
---- a/mkspecs/features/link_pkgconfig.prf
-+++ b/mkspecs/features/link_pkgconfig.prf
-@@ -1,6 +1,7 @@
- # handle pkg-config files
-+isEmpty(PKG_CONFIG):PKG_CONFIG = pkg-config
- for(PKGCONFIG_LIB, $$list($$unique(PKGCONFIG))) {
--    QMAKE_CXXFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
--    QMAKE_CFLAGS += $$system(pkg-config --cflags $$PKGCONFIG_LIB)
--    LIBS += $$system(pkg-config --libs $$PKGCONFIG_LIB)
-+    QMAKE_CXXFLAGS += $$system($$PKG_CONFIG --cflags $$PKGCONFIG_LIB)
-+    QMAKE_CFLAGS += $$system($$PKG_CONFIG --cflags $$PKGCONFIG_LIB)
-+    LIBS += $$system($$PKG_CONFIG --libs $$PKGCONFIG_LIB)
- }
--- 
-1.7.1
-
-
-From e7a88af7492caca935492d94a49e033154c61ffb Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Fri, 15 Oct 2010 14:56:03 +0200
-Subject: [PATCH 02/11] removed obsolete -qt-gif configure option
-
-Since "-system-gif" is not offered, offering "-qt-gif" is unnecessary
-and perhaps misleading. By default the GIF handler is built from code
-included with Qt, unless suppressed by "-no-gif".
-
-Merge-request: 859
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-(cherry picked from commit dfe9084344d73d59f4569c8be6104ce83ae0df95)
-
-diff --git a/configure b/configure
-index 0d9df16..6110264 100755
---- a/configure
-+++ b/configure
-@@ -1543,8 +1543,7 @@ while [ "$#" -gt 0 ]; do
-         fi
-         ;;
-     gif)
--        [ "$VAL" = "qt" ] && VAL=auto
--        if [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
-+        if [ "$VAL" = "no" ]; then
-             CFG_GIF="$VAL"
-         else
-             UNKNOWN_OPT=yes
-@@ -3522,7 +3521,7 @@ Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
-         [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
-         [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
-         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
--        [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
-+        [-qt-zlib] [-system-zlib] [-no-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
-         [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
-         [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
-         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
-@@ -3749,8 +3748,6 @@ Third Party Libraries:
-                          See http://www.gzip.org/zlib
- 
-     -no-gif ............ Do not compile GIF reading support.
-- *  -qt-gif ............ Compile GIF reading support.
--                         See also src/gui/image/qgifhandler_p.h
- 
-     -no-libtiff ........ Do not compile TIFF support.
-     -qt-libtiff ........ Use the libtiff bundled with Qt.
-diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
-index 983416a..c6b0a02 100644
---- a/tools/configure/configureapp.cpp
-+++ b/tools/configure/configureapp.cpp
-@@ -590,8 +590,6 @@ void Configure::parseCmdLine()
-         // Image formats --------------------------------------------
-         else if (configCmdLine.at(i) == "-no-gif")
-             dictionary[ "GIF" ] = "no";
--        else if (configCmdLine.at(i) == "-qt-gif")
--            dictionary[ "GIF" ] = "plugin";
- 
-         else if (configCmdLine.at(i) == "-no-libtiff") {
-             dictionary[ "TIFF"] = "no";
-@@ -1640,7 +1638,7 @@ bool Configure::displayHelp()
-                     "[-no-qmake] [-qmake] [-dont-process] [-process]\n"
-                     "[-no-style-<style>] [-qt-style-<style>] [-redo]\n"
-                     "[-saveconfig <config>] [-loadconfig <config>]\n"
--                    "[-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libpng]\n"
-+                    "[-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng]\n"
-                     "[-qt-libpng] [-system-libpng] [-no-libtiff] [-qt-libtiff]\n"
-                     "[-system-libtiff] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg]\n"
-                     "[-no-libmng] [-qt-libmng] [-system-libmng] [-no-qt3support] [-mmx]\n"
-@@ -1768,7 +1766,6 @@ bool Configure::displayHelp()
-         desc("ZLIB", "system",  "-system-zlib",         "Use zlib from the operating system.\nSee http://www.gzip.org/zlib\n");
- 
-         desc("GIF", "no",       "-no-gif",              "Do not compile GIF reading support.");
--        desc("GIF", "auto",     "-qt-gif",              "Compile GIF reading support.\nSee also src/gui/image/qgifhandler_p.h\n");
- 
-         desc("LIBPNG", "no",    "-no-libpng",           "Do not compile PNG support.");
-         desc("LIBPNG", "qt",    "-qt-libpng",           "Use the libpng bundled with Qt.");
--- 
-1.7.1
-
-
-From 850a442ea98a44434917db439bac1e77064ab647 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@nokia.com>
-Date: Tue, 28 Sep 2010 10:45:43 +0200
-Subject: [PATCH 03/11] Use quint64 (long long) instead of long for the GCC assembly code.
-
-Windows 64-bit has sizeof(long) == 4, which doesn't match the register
-size.
-
-Task-number: reported on IRC
-Reviewed-by: Trust Me
-(cherry picked from commit 61e0576f7b6b7cf3330f58b51e3e5e213919c6bf)
-
-diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
-index e727bfc..9c0502b 100644
---- a/src/corelib/tools/qsimd.cpp
-+++ b/src/corelib/tools/qsimd.cpp
-@@ -286,7 +286,7 @@ static inline uint detectProcessorFeatures()
-     uint feature_result = 0;
- 
- #if defined(Q_CC_GNU)
--    long tmp;
-+    quint64 tmp;
-     asm ("xchg %%rbx, %1\n"
-          "cpuid\n"
-          "xchg %%rbx, %1\n"
--- 
-1.7.1
-
-
-From 5f527934a1e8d1ccef6c9cc1a47ec8b47d50af48 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sat, 5 Jun 2010 23:41:04 +0200
-Subject: [PATCH 04/11] added missing INSTALLS to JavaScriptCore.pro for static libjscore
-
-For static build of Qt on win32-g++*, applications using webkit
-link to libjscore.a.
-
-diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-index a805170..027eb0f 100644
---- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-@@ -14,6 +14,12 @@ QT -= gui
- 
- CONFIG += depend_includepath
- 
-+static:win32-g++* {
-+    # applications must link to static libjscore
-+    target.path = $$[QT_INSTALL_LIBS]
-+    INSTALLS += target
-+}
-+
- contains(QT_CONFIG, embedded):CONFIG += embedded
- 
- CONFIG(QTDIR_build) {
--- 
-1.7.1
-
-
-From 3ab314a4ab6674b3007c8e0d050809c9544be1b3 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Tue, 9 Nov 2010 20:09:45 +0100
-Subject: [PATCH 05/11] Partially restored support for static linking of QtWebKit
-
-Support was removed by 4221d629e2cf37ee8c5ba7cb595b05ab8c82f113.
-Static QtWebkit might be supported by mingw-cross-env.
-
-diff --git a/configure b/configure
-index 6110264..abf577f 100755
---- a/configure
-+++ b/configure
-@@ -7131,12 +7131,6 @@ if [ "$CFG_GUI" = "no" ]; then
-     canBuildWebKit="no"
- fi
- 
--if [ "$CFG_SHARED" = "no" ]; then
--    echo
--    echo "WARNING: Using static linking will disable the WebKit module."
--    echo
--    canBuildWebKit="no"
--fi
- 
- CFG_CONCURRENT="yes"
- if [ "$canBuildQtConcurrent" = "no" ]; then
--- 
-1.7.1
-
-
-From dbad27ffa9cfdb14a08dcada25efe12e13964b8f Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Tue, 16 Nov 2010 20:06:28 +0100
-Subject: [PATCH 06/11] explicitly include -llcms for -lmng (mingw-cross-env specific)
-
-
-diff --git a/src/gui/image/qmnghandler.pri b/src/gui/image/qmnghandler.pri
-index ffb98de..c213e09 100644
---- a/src/gui/image/qmnghandler.pri
-+++ b/src/gui/image/qmnghandler.pri
-@@ -3,7 +3,7 @@ INCLUDEPATH *= $$PWD
- HEADERS += $$PWD/qmnghandler_p.h
- SOURCES += $$PWD/qmnghandler.cpp
- contains(QT_CONFIG, system-mng) {
--        if(unix|win32-g++*):LIBS += -lmng
-+        if(unix|win32-g++*):LIBS += -lmng -llcms
-         else:win32:         LIBS += libmng.lib
- } else {
-     include($$PWD/../../3rdparty/libmng.pri)
--- 
-1.7.1
-
-
-From dbfa4220ab19e03518cd04c2a677f328c6c32f28 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Thu, 6 Jan 2011 21:18:35 +0100
-Subject: [PATCH 07/11] qmake: fix double directory separator
-
-
-diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
-index 6d59981..77799ad 100644
---- a/qmake/generators/unix/unixmake2.cpp
-+++ b/qmake/generators/unix/unixmake2.cpp
-@@ -1345,8 +1345,13 @@ UnixMakefileGenerator::pkgConfigFileName(bool fixify)
-     if(dot != -1)
-         ret = ret.left(dot);
-     ret += Option::pkgcfg_ext;
--    if(!project->isEmpty("QMAKE_PKGCONFIG_DESTDIR"))
--        ret.prepend(project->first("QMAKE_PKGCONFIG_DESTDIR") + Option::dir_sep);
-+    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
-+    if(!subdir.isEmpty()) {
-+        // initOutPaths() appends dir_sep, but just to be safe..
-+        if (!subdir.endsWith(Option::dir_sep))
-+            ret.prepend(Option::dir_sep);
-+        ret.prepend(subdir);
-+    }
-     if(fixify) {
-         if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
-             ret.prepend(project->first("DESTDIR"));
--- 
-1.7.1
-
-
-From 874ad5e097a9c690ed0267a627bbe2b1d8bac0e3 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Thu, 6 Jan 2011 14:11:09 +0100
-Subject: [PATCH 08/11] qmake: don't limit pkg-config writing to unix generator
-
-Move pkg-config related methods from unix generator to base class
-so they can be used by other generators too.
-
-diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
-index 3543296..644f19c 100644
---- a/qmake/generators/makefile.cpp
-+++ b/qmake/generators/makefile.cpp
-@@ -3123,4 +3123,182 @@ MakefileGenerator::openOutput(QFile &file, const QString &build) const
-     return false;
- }
- 
-+QString
-+MakefileGenerator::pkgConfigFileName(bool fixify)
-+{
-+    QString ret = var("TARGET");
-+    int slsh = ret.lastIndexOf(Option::dir_sep);
-+    if(slsh != -1)
-+        ret = ret.right(ret.length() - slsh - 1);
-+    if(ret.startsWith("lib"))
-+        ret = ret.mid(3);
-+    int dot = ret.indexOf('.');
-+    if(dot != -1)
-+        ret = ret.left(dot);
-+    ret += Option::pkgcfg_ext;
-+    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
-+    if(!subdir.isEmpty()) {
-+        // initOutPaths() appends dir_sep, but just to be safe..
-+        if (!subdir.endsWith(Option::dir_sep))
-+            ret.prepend(Option::dir_sep);
-+        ret.prepend(subdir);
-+    }
-+    if(fixify) {
-+        if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
-+            ret.prepend(project->first("DESTDIR"));
-+        ret = Option::fixPathToLocalOS(fileFixify(ret, qmake_getpwd(), Option::output_dir));
-+    }
-+    return ret;
-+}
-+
-+QString
-+MakefileGenerator::pkgConfigPrefix() const
-+{
-+    if(!project->isEmpty("QMAKE_PKGCONFIG_PREFIX"))
-+        return project->first("QMAKE_PKGCONFIG_PREFIX");
-+    return QLibraryInfo::location(QLibraryInfo::PrefixPath);
-+}
-+
-+QString
-+MakefileGenerator::pkgConfigFixPath(QString path) const
-+{
-+    QString prefix = pkgConfigPrefix();
-+    if(path.startsWith(prefix))
-+        path = path.replace(prefix, "${prefix}");
-+    return path;
-+}
-+
-+void
-+MakefileGenerator::writePkgConfigFile()
-+{
-+    QString fname = pkgConfigFileName(), lname = fname;
-+    mkdir(fileInfo(fname).path());
-+    int slsh = lname.lastIndexOf(Option::dir_sep);
-+    if(slsh != -1)
-+        lname = lname.right(lname.length() - slsh - 1);
-+    QFile ft(fname);
-+    if(!ft.open(QIODevice::WriteOnly))
-+        return;
-+    project->values("ALL_DEPS").append(fileFixify(fname));
-+    QTextStream t(&ft);
-+
-+    QString prefix = pkgConfigPrefix();
-+    QString libDir = project->first("QMAKE_PKGCONFIG_LIBDIR");
-+    if(libDir.isEmpty())
-+        libDir = prefix + Option::dir_sep + "lib" + Option::dir_sep;
-+    QString includeDir = project->first("QMAKE_PKGCONFIG_INCDIR");
-+    if(includeDir.isEmpty())
-+        includeDir = prefix + "/include";
-+
-+    t << "prefix=" << prefix << endl;
-+    t << "exec_prefix=${prefix}\n"
-+      << "libdir=" << pkgConfigFixPath(libDir) << "\n"
-+      << "includedir=" << pkgConfigFixPath(includeDir) << endl;
-+    // non-standard entry. Provides useful info normally only
-+    // contained in the internal .qmake.cache file
-+    t << varGlue("CONFIG", "qt_config=", " ", "") << endl;
-+
-+    //extra PKGCONFIG variables
-+    const QStringList &pkgconfig_vars = project->values("QMAKE_PKGCONFIG_VARIABLES");
-+    for(int i = 0; i < pkgconfig_vars.size(); ++i) {
-+        QString var = project->first(pkgconfig_vars.at(i) + ".name"),
-+                val = project->values(pkgconfig_vars.at(i) + ".value").join(" ");
-+        if(var.isEmpty())
-+            continue;
-+        if(val.isEmpty()) {
-+            const QStringList &var_vars = project->values(pkgconfig_vars.at(i) + ".variable");
-+            for(int v = 0; v < var_vars.size(); ++v) {
-+                const QStringList &vars = project->values(var_vars.at(v));
-+                for(int var = 0; var < vars.size(); ++var) {
-+                    if(!val.isEmpty())
-+                        val += " ";
-+                    val += pkgConfigFixPath(vars.at(var));
-+                }
-+            }
-+        }
-+        t << var << "=" << val << endl;
-+    }
-+
-+    t << endl;
-+
-+    QString name = project->first("QMAKE_PKGCONFIG_NAME");
-+    if(name.isEmpty()) {
-+        name = project->first("QMAKE_ORIG_TARGET").toLower();
-+        name.replace(0, 1, name[0].toUpper());
-+    }
-+    t << "Name: " << name << endl;
-+    QString desc = project->values("QMAKE_PKGCONFIG_DESCRIPTION").join(" ");
-+    if(desc.isEmpty()) {
-+        if(name.isEmpty()) {
-+            desc = project->first("QMAKE_ORIG_TARGET").toLower();
-+            desc.replace(0, 1, desc[0].toUpper());
-+        } else {
-+            desc = name;
-+        }
-+        if(project->first("TEMPLATE") == "lib") {
-+            if(project->isActiveConfig("plugin"))
-+               desc += " Plugin";
-+            else
-+               desc += " Library";
-+        } else if(project->first("TEMPLATE") == "app") {
-+            desc += " Application";
-+        }
-+    }
-+    t << "Description: " << desc << endl;
-+    t << "Version: " << project->first("VERSION") << endl;
-+
-+    // libs
-+    t << "Libs: ";
-+    QString pkgConfiglibDir;
-+    QString pkgConfiglibName;
-+    if (Option::target_mode == Option::TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
-+        pkgConfiglibDir = "-F${libdir}";
-+        QString bundle;
-+        if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
-+            bundle = unescapeFilePath(project->first("QMAKE_FRAMEWORK_BUNDLE_NAME"));
-+        else
-+            bundle = unescapeFilePath(project->first("TARGET"));
-+        int suffix = bundle.lastIndexOf(".framework");
-+        if (suffix != -1)
-+            bundle = bundle.left(suffix);
-+        pkgConfiglibName = "-framework " + bundle + " ";
-+    } else {
-+        pkgConfiglibDir = "-L${libdir}";
-+        pkgConfiglibName = "-l" + lname.left(lname.length()-Option::libtool_ext.length());
-+    }
-+    t << pkgConfiglibDir << " " << pkgConfiglibName << " " << endl;
-+
-+    QStringList libs;
-+    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) {
-+        libs = project->values("QMAKE_INTERNAL_PRL_LIBS");
-+    } else {
-+        libs << "QMAKE_LIBS"; //obvious one
-+    }
-+    libs << "QMAKE_LIBS_PRIVATE";
-+    libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
-+    t << "Libs.private: ";
-+    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it) {
-+        t << project->values((*it)).join(" ") << " ";
-+    }
-+    t << endl;
-+
-+    // flags
-+    // ### too many
-+    t << "Cflags: "
-+        // << var("QMAKE_CXXFLAGS") << " "
-+      << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
-+      << project->values("PRL_EXPORT_CXXFLAGS").join(" ")
-+      << project->values("QMAKE_PKGCONFIG_CFLAGS").join(" ")
-+        //      << varGlue("DEFINES","-D"," -D"," ")
-+      << " -I${includedir}" << endl;
-+
-+    // requires
-+    const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(" ");
-+    if (!requires.isEmpty()) {
-+        t << "Requires: " << requires << endl;
-+    }
-+
-+    t << endl;
-+}
-+
- QT_END_NAMESPACE
-diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
-index ac377f2..dc0422d 100644
---- a/qmake/generators/makefile.h
-+++ b/qmake/generators/makefile.h
-@@ -105,6 +105,11 @@ protected:
-     virtual bool writeStubMakefile(QTextStream &t);
-     virtual bool writeMakefile(QTextStream &t);
- 
-+    QString pkgConfigPrefix() const;
-+    QString pkgConfigFileName(bool fixify=true);
-+    QString pkgConfigFixPath(QString) const;
-+    void writePkgConfigFile();   // for pkg-config
-+
-     //generating subtarget makefiles
-     struct SubTarget
-     {
-diff --git a/qmake/generators/unix/unixmake.h b/qmake/generators/unix/unixmake.h
-index a694eab..a2c3503 100644
---- a/qmake/generators/unix/unixmake.h
-+++ b/qmake/generators/unix/unixmake.h
-@@ -51,10 +51,6 @@ class UnixMakefileGenerator : public MakefileGenerator
-     bool init_flag, include_deps;
-     QString libtoolFileName(bool fixify=true);
-     void writeLibtoolFile();     // for libtool
--    QString pkgConfigPrefix() const;
--    QString pkgConfigFileName(bool fixify=true);
--    QString pkgConfigFixPath(QString) const;
--    void writePkgConfigFile();   // for pkg-config
-     void writePrlFile(QTextStream &);
- 
- public:
-diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
-index 77799ad..025201f 100644
---- a/qmake/generators/unix/unixmake2.cpp
-+++ b/qmake/generators/unix/unixmake2.cpp
-@@ -1332,182 +1332,4 @@ UnixMakefileGenerator::writeLibtoolFile()
-         "libdir='" << Option::fixPathToTargetOS(install_dir, false) << "'\n";
- }
- 
--QString
--UnixMakefileGenerator::pkgConfigFileName(bool fixify)
--{
--    QString ret = var("TARGET");
--    int slsh = ret.lastIndexOf(Option::dir_sep);
--    if(slsh != -1)
--        ret = ret.right(ret.length() - slsh - 1);
--    if(ret.startsWith("lib"))
--        ret = ret.mid(3);
--    int dot = ret.indexOf('.');
--    if(dot != -1)
--        ret = ret.left(dot);
--    ret += Option::pkgcfg_ext;
--    QString subdir = project->first("QMAKE_PKGCONFIG_DESTDIR");
--    if(!subdir.isEmpty()) {
--        // initOutPaths() appends dir_sep, but just to be safe..
--        if (!subdir.endsWith(Option::dir_sep))
--            ret.prepend(Option::dir_sep);
--        ret.prepend(subdir);
--    }
--    if(fixify) {
--        if(QDir::isRelativePath(ret) && !project->isEmpty("DESTDIR"))
--            ret.prepend(project->first("DESTDIR"));
--        ret = Option::fixPathToLocalOS(fileFixify(ret, qmake_getpwd(), Option::output_dir));
--    }
--    return ret;
--}
--
--QString
--UnixMakefileGenerator::pkgConfigPrefix() const
--{
--    if(!project->isEmpty("QMAKE_PKGCONFIG_PREFIX"))
--        return project->first("QMAKE_PKGCONFIG_PREFIX");
--    return QLibraryInfo::location(QLibraryInfo::PrefixPath);
--}
--
--QString
--UnixMakefileGenerator::pkgConfigFixPath(QString path) const
--{
--    QString prefix = pkgConfigPrefix();
--    if(path.startsWith(prefix))
--        path = path.replace(prefix, "${prefix}");
--    return path;
--}
--
--void
--UnixMakefileGenerator::writePkgConfigFile()
--{
--    QString fname = pkgConfigFileName(), lname = fname;
--    mkdir(fileInfo(fname).path());
--    int slsh = lname.lastIndexOf(Option::dir_sep);
--    if(slsh != -1)
--        lname = lname.right(lname.length() - slsh - 1);
--    QFile ft(fname);
--    if(!ft.open(QIODevice::WriteOnly))
--        return;
--    project->values("ALL_DEPS").append(fileFixify(fname));
--    QTextStream t(&ft);
--
--    QString prefix = pkgConfigPrefix();
--    QString libDir = project->first("QMAKE_PKGCONFIG_LIBDIR");
--    if(libDir.isEmpty())
--        libDir = prefix + Option::dir_sep + "lib" + Option::dir_sep;
--    QString includeDir = project->first("QMAKE_PKGCONFIG_INCDIR");
--    if(includeDir.isEmpty())
--        includeDir = prefix + "/include";
--
--    t << "prefix=" << prefix << endl;
--    t << "exec_prefix=${prefix}\n"
--      << "libdir=" << pkgConfigFixPath(libDir) << "\n"
--      << "includedir=" << pkgConfigFixPath(includeDir) << endl;
--    // non-standard entry. Provides useful info normally only
--    // contained in the internal .qmake.cache file
--    t << varGlue("CONFIG", "qt_config=", " ", "") << endl;
--
--    //extra PKGCONFIG variables
--    const QStringList &pkgconfig_vars = project->values("QMAKE_PKGCONFIG_VARIABLES");
--    for(int i = 0; i < pkgconfig_vars.size(); ++i) {
--        QString var = project->first(pkgconfig_vars.at(i) + ".name"),
--                val = project->values(pkgconfig_vars.at(i) + ".value").join(" ");
--        if(var.isEmpty())
--            continue;
--        if(val.isEmpty()) {
--            const QStringList &var_vars = project->values(pkgconfig_vars.at(i) + ".variable");
--            for(int v = 0; v < var_vars.size(); ++v) {
--                const QStringList &vars = project->values(var_vars.at(v));
--                for(int var = 0; var < vars.size(); ++var) {
--                    if(!val.isEmpty())
--                        val += " ";
--                    val += pkgConfigFixPath(vars.at(var));
--                }
--            }
--        }
--        t << var << "=" << val << endl;
--    }
--
--    t << endl;
--
--    QString name = project->first("QMAKE_PKGCONFIG_NAME");
--    if(name.isEmpty()) {
--        name = project->first("QMAKE_ORIG_TARGET").toLower();
--        name.replace(0, 1, name[0].toUpper());
--    }
--    t << "Name: " << name << endl;
--    QString desc = project->values("QMAKE_PKGCONFIG_DESCRIPTION").join(" ");
--    if(desc.isEmpty()) {
--        if(name.isEmpty()) {
--            desc = project->first("QMAKE_ORIG_TARGET").toLower();
--            desc.replace(0, 1, desc[0].toUpper());
--        } else {
--            desc = name;
--        }
--        if(project->first("TEMPLATE") == "lib") {
--            if(project->isActiveConfig("plugin"))
--               desc += " Plugin";
--            else
--               desc += " Library";
--        } else if(project->first("TEMPLATE") == "app") {
--            desc += " Application";
--        }
--    }
--    t << "Description: " << desc << endl;
--    t << "Version: " << project->first("VERSION") << endl;
--
--    // libs
--    t << "Libs: ";
--    QString pkgConfiglibDir;
--    QString pkgConfiglibName;
--    if (Option::target_mode == Option::TARG_MACX_MODE && project->isActiveConfig("lib_bundle")) {
--        pkgConfiglibDir = "-F${libdir}";
--        QString bundle;
--        if (!project->isEmpty("QMAKE_FRAMEWORK_BUNDLE_NAME"))
--            bundle = unescapeFilePath(project->first("QMAKE_FRAMEWORK_BUNDLE_NAME"));
--        else
--            bundle = unescapeFilePath(project->first("TARGET"));
--        int suffix = bundle.lastIndexOf(".framework");
--        if (suffix != -1)
--            bundle = bundle.left(suffix);
--        pkgConfiglibName = "-framework " + bundle + " ";
--    } else {
--        pkgConfiglibDir = "-L${libdir}";
--        pkgConfiglibName = "-l" + lname.left(lname.length()-Option::libtool_ext.length());
--    }
--    t << pkgConfiglibDir << " " << pkgConfiglibName << " " << endl;
--
--    QStringList libs;
--    if(!project->isEmpty("QMAKE_INTERNAL_PRL_LIBS")) {
--        libs = project->values("QMAKE_INTERNAL_PRL_LIBS");
--    } else {
--        libs << "QMAKE_LIBS"; //obvious one
--    }
--    libs << "QMAKE_LIBS_PRIVATE";
--    libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
--    t << "Libs.private: ";
--    for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it) {
--        t << project->values((*it)).join(" ") << " ";
--    }
--    t << endl;
--
--    // flags
--    // ### too many
--    t << "Cflags: "
--        // << var("QMAKE_CXXFLAGS") << " "
--      << varGlue("PRL_EXPORT_DEFINES","-D"," -D"," ")
--      << project->values("PRL_EXPORT_CXXFLAGS").join(" ")
--      << project->values("QMAKE_PKGCONFIG_CFLAGS").join(" ")
--        //      << varGlue("DEFINES","-D"," -D"," ")
--      << " -I${includedir}" << endl;
--
--    // requires
--    const QString requires = project->values("QMAKE_PKGCONFIG_REQUIRES").join(" ");
--    if (!requires.isEmpty()) {
--        t << "Requires: " << requires << endl;
--    }
--
--    t << endl;
--}
--
- QT_END_NAMESPACE
--- 
-1.7.1
-
-
-From 86ba332d9176e763ce8abbed86ed7b4f643009d4 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Thu, 6 Jan 2011 22:14:45 +0100
-Subject: [PATCH 09/11] qmake: write and install pkg-config files for mingw
-
-
-diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
-index ffc6085..3d84bc1 100644
---- a/qmake/generators/win32/mingw_make.cpp
-+++ b/qmake/generators/win32/mingw_make.cpp
-@@ -142,6 +142,9 @@ bool MingwMakefileGenerator::writeMakefile(QTextStream &t)
- 
-     if(project->first("TEMPLATE") == "app" ||
-        project->first("TEMPLATE") == "lib") {
-+        if(project->isActiveConfig("create_pc") && project->first("TEMPLATE") == "lib")
-+            writePkgConfigFile();
-+
-         if(Option::mkfile::do_stub_makefile) {
-             t << "QMAKE    = " << var("QMAKE_QMAKE") << endl;
-             QStringList &qut = project->values("QMAKE_EXTRA_TARGETS");
-diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
-index cfe5859..519d79e 100644
---- a/qmake/generators/win32/winmakefile.cpp
-+++ b/qmake/generators/win32/winmakefile.cpp
-@@ -803,6 +803,18 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
-                 uninst.append("\n\t");
-             uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");
-         }
-+        if(project->isActiveConfig("create_pc")) {
-+            QString dst_pc = pkgConfigFileName(false);
-+            if (!dst_pc.isEmpty()) {
-+                dst_pc = filePrefixRoot(root, targetdir + dst_pc);
-+                if(!ret.isEmpty())
-+                    ret += "\n\t";
-+                ret += "-$(INSTALL_FILE) \"" + pkgConfigFileName(true) + "\" \"" + dst_pc + "\"";
-+                if(!uninst.isEmpty())
-+                    uninst.append("\n\t");
-+                uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");
-+            }
-+        }
-         if(project->isActiveConfig("shared") && !project->isActiveConfig("plugin")) {
-             QString lib_target = getLibTarget();
-             lib_target.remove('"');
--- 
-1.7.1
-
-
-From 1bb4c08b95d61d81f55cf2b1d332dc9fc5a974be Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Thu, 6 Jan 2011 14:20:36 +0100
-Subject: [PATCH 10/11] qt project files: create pkg-config files for mingw
-
-This is mostly the same as for unix.
-
-diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
-index 5f688f3..ac29ad6 100644
---- a/src/3rdparty/webkit/WebCore/WebCore.pro
-+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
-@@ -85,9 +85,7 @@ moduleFile=$$PWD/../WebKit/qt/qt_webkit_version.pri
- isEmpty(QT_BUILD_TREE):include($$moduleFile)
- VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
- 
--unix {
--    QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
--}
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
- 
- unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections -fdata-sections 
- unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections
-diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
-index 46a723a..52ed217 100644
---- a/src/dbus/dbus.pro
-+++ b/src/dbus/dbus.pro
-@@ -12,7 +12,7 @@ contains(QT_CONFIG, dbus-linked) {
- }
- 
- # INCLUDEPATH += .
--unix { 
-+unix|win32-g++* {
-     QMAKE_PKGCONFIG_DESCRIPTION = Qt \
-         DBus \
-         module
-diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
-index 510e7a5..5be4b92 100644
---- a/src/declarative/declarative.pro
-+++ b/src/declarative/declarative.pro
-@@ -7,7 +7,7 @@ DEFINES   += QT_BUILD_DECLARATIVE_LIB QT_NO_URL_CAST_FROM_STRING
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
- solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
- 
- exists("qdeclarative_enable_gcov") {
-     QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors
-diff --git a/src/gui/gui.pro b/src/gui/gui.pro
-index 13d2c77..6458a7a 100644
---- a/src/gui/gui.pro
-+++ b/src/gui/gui.pro
-@@ -7,7 +7,7 @@ irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused
- 
- !win32:!embedded:!mac:!symbian:CONFIG      += x11
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- include(../qbase.pri)
- 
-diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro
-index 852322d..e827cdd 100644
---- a/src/multimedia/multimedia.pro
-+++ b/src/multimedia/multimedia.pro
-@@ -4,7 +4,7 @@ QT = core gui
- 
- DEFINES += QT_BUILD_MULTIMEDIA_LIB QT_NO_USING_NAMESPACE
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
- 
- include(../qbase.pri)
- 
-diff --git a/src/network/network.pro b/src/network/network.pro
-index 5e33080..3c0f7d0 100644
---- a/src/network/network.pro
-+++ b/src/network/network.pro
-@@ -13,7 +13,7 @@ DEFINES += QT_BUILD_NETWORK_LIB QT_NO_USING_NAMESPACE
- QT = core
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x64000000
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- include(../qbase.pri)
- include(access/access.pri)
-diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
-index 0e82467..d467148 100644
---- a/src/opengl/opengl.pro
-+++ b/src/opengl/opengl.pro
-@@ -7,7 +7,7 @@ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x63000000
- solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
- irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
- 
- include(../qbase.pri)
- 
-diff --git a/src/openvg/openvg.pro b/src/openvg/openvg.pro
-index eb60331..448a605 100644
---- a/src/openvg/openvg.pro
-+++ b/src/openvg/openvg.pro
-@@ -42,7 +42,7 @@ symbian {
- 
- include(../qbase.pri)
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
- symbian:TARGET.UID3 = 0x2001E62F
- 
- !isEmpty(QMAKE_INCDIR_OPENVG): INCLUDEPATH += $$QMAKE_INCDIR_OPENVG
-diff --git a/src/phonon/phonon.pro b/src/phonon/phonon.pro
-index 7f79d0b..b16c5a1 100644
---- a/src/phonon/phonon.pro
-+++ b/src/phonon/phonon.pro
-@@ -11,7 +11,7 @@ DEFINES += MAKE_PHONON_LIB
- 
- PHONON_DIR = $$QT_SOURCE_TREE/src/3rdparty/phonon/phonon
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork
- 
- # Input
- HEADERS += $$PHONON_DIR/abstractaudiooutput.h \
-diff --git a/src/qbase.pri b/src/qbase.pri
-index 680693f..b3d2af3 100644
---- a/src/qbase.pri
-+++ b/src/qbase.pri
-@@ -152,6 +152,14 @@ unix:!symbian {
-    QMAKE_PKGCONFIG_INSTALL_REPLACE += include_replace lib_replace prefix_replace
- }
- 
-+win32-g++* {
-+   CONFIG += create_pc
-+   QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
-+   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
-+   QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
-+   QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-+}
-+
- contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE
- DEFINES *= QT_NO_CAST_TO_ASCII QT_ASCII_CAST_WARNINGS
- contains(QT_CONFIG, qt3support):DEFINES *= QT3_SUPPORT
-diff --git a/src/qt3support/qt3support.pro b/src/qt3support/qt3support.pro
-index a30117c..1e0717d 100644
---- a/src/qt3support/qt3support.pro
-+++ b/src/qt3support/qt3support.pro
-@@ -21,7 +21,7 @@ include(canvas/canvas.pri)
- include(network/network.pri)
- include(painting/painting.pri)
- 
--unix {
-+unix|win32-g++* {
-    QMAKE_PKGCONFIG_CFLAGS += -DQT3_SUPPORT
-    QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtNetwork QtSql
- }
-diff --git a/src/script/script.pro b/src/script/script.pro
-index 4ee86d7..4a3f009 100644
---- a/src/script/script.pro
-+++ b/src/script/script.pro
-@@ -7,7 +7,7 @@ DEFINES   += QT_NO_USING_NAMESPACE
- DEFINES   += QLALR_NO_QSCRIPTGRAMMAR_DEBUG_INFO
- #win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000       ### FIXME
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- include(../qbase.pri)
- 
-diff --git a/src/scripttools/scripttools.pro b/src/scripttools/scripttools.pro
-index b1df7aa..061dea5 100644
---- a/src/scripttools/scripttools.pro
-+++ b/src/scripttools/scripttools.pro
-@@ -5,7 +5,7 @@ DEFINES   += QT_BUILD_SCRIPTTOOLS_LIB
- DEFINES   += QT_NO_USING_NAMESPACE
- #win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtScript
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtScript
- 
- include(../qbase.pri)
- 
-diff --git a/src/sql/sql.pro b/src/sql/sql.pro
-index b8f819d..54f4289 100644
---- a/src/sql/sql.pro
-+++ b/src/sql/sql.pro
-@@ -5,7 +5,7 @@ DEFINES += QT_BUILD_SQL_LIB
- DEFINES += QT_NO_USING_NAMESPACE
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x62000000
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- include(../qbase.pri)
- 
-diff --git a/src/svg/svg.pro b/src/svg/svg.pro
-index 7b5251a..79f284a 100644
---- a/src/svg/svg.pro
-+++ b/src/svg/svg.pro
-@@ -6,7 +6,7 @@ DEFINES   += QT_NO_USING_NAMESPACE
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
- solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui
- 
- include(../qbase.pri)
- 
-diff --git a/src/xml/xml.pro b/src/xml/xml.pro
-index 8d1bf68..019153c 100644
---- a/src/xml/xml.pro
-+++ b/src/xml/xml.pro
-@@ -4,7 +4,7 @@ QT         = core
- DEFINES   += QT_BUILD_XML_LIB QT_NO_USING_NAMESPACE
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x61000000
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- include(../qbase.pri)
- 
-diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro
-index e50d184..d22f417 100644
---- a/src/xmlpatterns/xmlpatterns.pro
-+++ b/src/xmlpatterns/xmlpatterns.pro
-@@ -5,7 +5,7 @@ QT = core \
- DEFINES += QT_BUILD_XMLPATTERNS_LIB \
-     QT_NO_USING_NAMESPACE
- win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x61000000
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore \
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore \
-     QtNetwork
- include(../qbase.pri)
- PRECOMPILED_HEADER = ../corelib/global/qt_pch.h
-diff --git a/tools/assistant/lib/fulltextsearch/fulltextsearch.pro b/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
-index 4d2fddb..d0e7a87 100644
---- a/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
-+++ b/tools/assistant/lib/fulltextsearch/fulltextsearch.pro
-@@ -23,7 +23,7 @@ contains(QT_CONFIG, reduce_exports) {
-     linux*-g++*:DEFINES += _GLIBCXX_EXTERN_TEMPLATE=0
- }
- 
--unix:QMAKE_PKGCONFIG_REQUIRES = QtCore
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
- 
- # impossible to disable exceptions in clucene atm
- CONFIG(exceptions_off) {
-diff --git a/tools/assistant/lib/lib.pro b/tools/assistant/lib/lib.pro
-index 26d3456..03821b2 100644
---- a/tools/assistant/lib/lib.pro
-+++ b/tools/assistant/lib/lib.pro
-@@ -19,7 +19,7 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
-     win32:qclucene = $${qclucene}d
- }
- linux-lsb-g++:LIBS_PRIVATE += --lsb-shared-libs=$$qclucene
--unix:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES += QtNetwork \
-     QtSql \
-     QtXml
- LIBS_PRIVATE += -l$$qclucene
-diff --git a/tools/designer/src/components/lib/lib.pro b/tools/designer/src/components/lib/lib.pro
-index 0ada845..50a8b00 100644
---- a/tools/designer/src/components/lib/lib.pro
-+++ b/tools/designer/src/components/lib/lib.pro
-@@ -64,7 +64,7 @@ PRECOMPILED_HEADER= lib_pch.h
- include(../../sharedcomponents.pri)
- include(../component.pri)
- 
--unix {
-+unix|win32-g++* {
-     QMAKE_PKGCONFIG_REQUIRES = QtCore QtDesigner QtGui QtXml
-     contains(QT_CONFIG, script): QMAKE_PKGCONFIG_REQUIRES += QtScript
- }
-diff --git a/tools/designer/src/lib/lib.pro b/tools/designer/src/lib/lib.pro
-index 495976d..3ba6f52 100644
---- a/tools/designer/src/lib/lib.pro
-+++ b/tools/designer/src/lib/lib.pro
-@@ -13,7 +13,7 @@ isEmpty(QT_MAJOR_VERSION) {
-    VERSION=$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}
- }
- 
--unix:QMAKE_PKGCONFIG_REQUIRES += QtXml
-+unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES += QtXml
- 
- include(../../../../src/qt_targets.pri)
- QMAKE_TARGET_PRODUCT = Designer
-diff --git a/tools/designer/src/uitools/uitools.pro b/tools/designer/src/uitools/uitools.pro
-index 7b94587..6e0a247 100644
---- a/tools/designer/src/uitools/uitools.pro
-+++ b/tools/designer/src/uitools/uitools.pro
-@@ -35,7 +35,7 @@ INSTALLS        += quitools_headers
- target.path=$$[QT_INSTALL_LIBS]
- INSTALLS        += target
- 
--unix {
-+unix|win32-g++* {
-    CONFIG     += create_pc
-    QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
-    QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
--- 
-1.7.1
-
-
-From 091a5e41827b3475e8e1ca58670a15d3b1cec0c4 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Thu, 6 Jan 2011 14:21:32 +0100
-Subject: [PATCH 11/11] pkg-config file for jscore (mingw-cross-env specific)
-
-
-diff --git a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-index 027eb0f..44bbc3f 100644
---- a/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-+++ b/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pro
-@@ -236,3 +236,11 @@ SOURCES += \
- 
- # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec
- *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
-+
-+win32-g++-* {
-+   CONFIG += create_pc
-+   QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS]
-+   QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS]/$$TARGET
-+   QMAKE_PKGCONFIG_CFLAGS = -I$$[QT_INSTALL_HEADERS]
-+   QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-+}
--- 
-1.7.1
-
--- a/src/qt-2-macosx-gcc-arch.patch	Wed Mar 02 01:40:46 2011 +1100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-The native build complains about:
-
-"You are building a 64-bit application, but using a 32-bit version of Qt. Check your build configuration."
-
-diff -ur a/mkspecs/macx-g++/qmake.conf b/mkspecs/macx-g++/qmake.conf
---- a/mkspecs/macx-g++/qmake.conf	2010-09-26 23:32:05.000000000 +1000
-+++ b/mkspecs/macx-g++/qmake.conf	2010-09-26 23:31:29.000000000 +1000
-@@ -13,8 +13,8 @@
- QT			+= core gui
- QMAKE_INCREMENTAL_STYLE = sublib
- 
--QMAKE_CC		 = gcc
--QMAKE_CXX		 = g++
-+QMAKE_CC		 = gcc -arch i386
-+QMAKE_CXX		 = g++ -arch i386
- 
- include(../common/mac-g++.conf)
--- a/src/qt.mk	Wed Mar 02 01:40:46 2011 +1100
+++ b/src/qt.mk	Tue Mar 01 15:50:10 2011 +0100
@@ -4,8 +4,8 @@
 # Qt
 PKG             := qt
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 4.7.1
-$(PKG)_CHECKSUM := fcf764d39d982c7f84703821582bd10c3192e341
+$(PKG)_VERSION  := 4.7.2
+$(PKG)_CHECKSUM := 84414f82bbc9e8d356b986d5d1ebee89d06e4f2e
 $(PKG)_SUBDIR   := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION)
 $(PKG)_FILE     := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION).tar.gz
 $(PKG)_WEBSITE  := http://qt.nokia.com/