summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2012-12-10 16:11:47 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-10 15:33:54 +0100
commit903fa2e4aa0d4e0cf0e13216dd8883b5e4a7709d (patch)
tree2b4a5deff813da0b1c81b26de2e3b348a2828243
parentf166fcd3d0931ecc08087b12fdac5940e5ccbdf7 (diff)
Add QT_DEFAULT_QPA_PLUGIN to generated qconfig.pri
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable to specify the default QPA plugin. "CONFIG += qpa_default_plugin" statement in application .pro file will add the default QPA plugin into QTPLUGINS. "CONFIG += qpa_minimal_plugin" statement in application .pro file will add the minimal QPA plugin into QTPLUGINS. Task-number: QTBUG-28131 Change-Id: I12a241005f30b37467d783b50f0369b47e605e68 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-rwxr-xr-xconfigure5
-rw-r--r--mkspecs/features/qt.prf4
-rw-r--r--src/corelib/doc/snippets/code/doc_src_plugins-howto.pro3
-rw-r--r--src/corelib/doc/src/plugins-howto.qdoc10
-rw-r--r--tools/configure/configureapp.cpp3
5 files changed, 25 insertions, 0 deletions
diff --git a/configure b/configure
index cebb5a8ea2..f2251be233 100755
--- a/configure
+++ b/configure
@@ -6026,6 +6026,11 @@ QT_NAMESPACE = $QT_NAMESPACE
EOF
+if [ "$CFG_SHARED" = "no" ]; then
+ echo "QT_DEFAULT_QPA_PLUGIN = $QT_QPA_DEFAULT_PLATFORM" >> "$QTCONFIG.tmp"
+ echo >> "$QTCONFIG.tmp"
+fi
+
if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
echo "# pkgconfig" >> "$QTCONFIG.tmp"
echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 6b2833b09e..0735ec465c 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -40,6 +40,10 @@ QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN
contains(QT_CONFIG, static) {
QT_PLUGIN_VERIFY += QTPLUGIN
contains(TEMPLATE, .*app) {
+ contains(QT, gui) {
+ qpa_minimal_plugin: QTPLUGIN += qminimal
+ qpa_default_plugin: QTPLUGIN += $$QT_DEFAULT_QPA_PLUGIN
+ }
import_plugins:!isEmpty(QTPLUGIN) {
IMPORT_FILE_CONT = \
"// This file is autogenerated by qmake. It imports static plugin classes for" \
diff --git a/src/corelib/doc/snippets/code/doc_src_plugins-howto.pro b/src/corelib/doc/snippets/code/doc_src_plugins-howto.pro
index 20d5f7e41b..2b20811377 100644
--- a/src/corelib/doc/snippets/code/doc_src_plugins-howto.pro
+++ b/src/corelib/doc/snippets/code/doc_src_plugins-howto.pro
@@ -42,6 +42,9 @@
CONFIG += release
#! [3]
+#! [4]
+CONFIG += qpa_default_plugin import_plugins
+#! [4]
#! [5]
QTPLUGIN += qjpeg \
diff --git a/src/corelib/doc/src/plugins-howto.qdoc b/src/corelib/doc/src/plugins-howto.qdoc
index 332b92596b..37c1c13fea 100644
--- a/src/corelib/doc/src/plugins-howto.qdoc
+++ b/src/corelib/doc/src/plugins-howto.qdoc
@@ -296,6 +296,16 @@
to make sure that the \c{QT_STATICPLUGIN} preprocessor macro is
defined.
+ Qt platform adaptation plugins are not automatically linked in static
+ builds. To add default QPA plugin to \c QTPLUGIN variable and automatically
+ generate Q_IMPORT_PLUGIN statements for your application, add the following
+ to \c CONFIG:
+
+ \snippet code/doc_src_plugins-howto.pro 4
+
+ If the minimal QPA plugin is required, use \c qpa_minimal_plugin instead of
+ \c qpa_default_plugin.
+
\section1 Deploying and Debugging Plugins
The \l{Deploying Plugins} document covers the process of deploying
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 696d07ade4..2bb670dfd7 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -3099,6 +3099,9 @@ void Configure::generateQConfigPri()
if (!dictionary["QT_NAMESPACE"].isEmpty())
configStream << "#namespaces" << endl << "QT_NAMESPACE = " << dictionary["QT_NAMESPACE"] << endl;
+ if (dictionary[ "SHARED" ] == "no")
+ configStream << "QT_DEFAULT_QPA_PLUGIN = " << qpaPlatformName() << endl;
+
configStream.flush();
configFile.close();
}