From 903fa2e4aa0d4e0cf0e13216dd8883b5e4a7709d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 10 Dec 2012 16:11:47 +0200 Subject: 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 --- configure | 5 +++++ mkspecs/features/qt.prf | 4 ++++ src/corelib/doc/snippets/code/doc_src_plugins-howto.pro | 3 +++ src/corelib/doc/src/plugins-howto.qdoc | 10 ++++++++++ tools/configure/configureapp.cpp | 3 +++ 5 files changed, 25 insertions(+) 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(); } -- cgit v1.2.3