diff options
-rw-r--r-- | mkspecs/features/qt.prf | 25 | ||||
-rw-r--r-- | mkspecs/features/qt_plugin.prf | 4 |
2 files changed, 27 insertions, 2 deletions
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 443914e011..6b2833b09e 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -36,7 +36,30 @@ plugin { #Qt plugins } QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN -contains(QT_CONFIG, static): QT_PLUGIN_VERIFY += QTPLUGIN + +contains(QT_CONFIG, static) { + QT_PLUGIN_VERIFY += QTPLUGIN + contains(TEMPLATE, .*app) { + import_plugins:!isEmpty(QTPLUGIN) { + IMPORT_FILE_CONT = \ + "// This file is autogenerated by qmake. It imports static plugin classes for" \ + "// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS.<plugin> variables." \ + "$${LITERAL_HASH}include <QtPlugin>" + for(IMPORT_PLUG, $$list($$unique(QTPLUGIN))) { + PLUG_CLASS = $$eval(QT_PLUGIN.$${IMPORT_PLUG}.CLASS_NAME) + !isEmpty(PLUG_CLASS): \ + IMPORT_FILE_CONT += "Q_IMPORT_PLUGIN($$PLUG_CLASS)" + else: \ + warning("Plugin class name could not be determined for $$IMPORT_PLUG plugin.") + } + IMPORT_CPP = $$OUT_PWD/$$lower($$basename(TARGET))_plugin_import.cpp + write_file($$IMPORT_CPP, IMPORT_FILE_CONT)|error("Aborting.") + SOURCES += $$IMPORT_CPP + QMAKE_DISTCLEAN += $$IMPORT_CPP + } + } +} + for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { for(QTPLUG, $$list($$lower($$unique($$QT_CURRENT_VERIFY)))) { # Check if the plugin is known to Qt. We can use this to determine diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index e09e5d0a3c..f547e2d1eb 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -26,7 +26,9 @@ else:CONFIG += shared MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_plugin_$${MODULE}.pri MODULE_PRI_CONT = \ - "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" + "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \ + "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" + write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules |