summaryrefslogtreecommitdiffstats
path: root/src/qt-1-cherrypicks.patch
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2011-03-01 14:50:10 (GMT)
committerMark Brand <mabrand@mabrand.nl>2011-03-01 14:50:10 (GMT)
commitc62c5b35d1adc111d213029806e4376c9ef26f5d (patch)
tree0622832d4554f8e77b8b898be0867a66fd60dc3e /src/qt-1-cherrypicks.patch
parentfa0ab820cb2bd3cf9b6e086fdca998c423e67895 (diff)
downloadmxe-c62c5b35d1adc111d213029806e4376c9ef26f5d.zip
mxe-c62c5b35d1adc111d213029806e4376c9ef26f5d.tar.gz
mxe-c62c5b35d1adc111d213029806e4376c9ef26f5d.tar.bz2
update package qt
Diffstat (limited to 'src/qt-1-cherrypicks.patch')
-rw-r--r--src/qt-1-cherrypicks.patch1383
1 files changed, 1383 insertions, 0 deletions
diff --git a/src/qt-1-cherrypicks.patch b/src/qt-1-cherrypicks.patch
new file mode 100644
index 0000000..4c82741
--- /dev/null
+++ b/src/qt-1-cherrypicks.patch
@@ -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
+