let static plugins have "module" pri files
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>
Wed, 24 Oct 2012 13:02:08 +0000 (15:02 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 1 Nov 2012 21:35:28 +0000 (22:35 +0100)
... and use them in qt.prf instead of (not) maintaining hand-coded lists.

Change-Id: Ia21f7864eaf3ca92fa75f23876f71075d0521f4b
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
mkspecs/features/qt.prf
mkspecs/features/qt_plugin.prf

index 679dfc4..c4b991b 100644 (file)
@@ -40,37 +40,7 @@ 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
        # the plugin path. Unknown plugins must rely on the default link path.
-       ACCESSIBLEPLUGINS = qtaccessiblewidgets qtaccessiblecompatwidgets
-       BEARERPLUGINS = qgenericbearer qnativewifibearer
-       CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs
-       DECORATIONPLUGINS = qdecorationdefault qdecorationstyled qdecorationwindows
-       GFXDRIVERPLUGINS = qscreenvfb qgfxtransformed qgfxshadowfb qgfxpvregl qscreenlinuxfb qeglnullws qdirectfbscreen qahiscreen
-       GRAPHICSSYSTEMPLUGINS = qmeegographicssystem qglgraphicssystem qvggraphicssystem qshivavggraphicssystem
-       IMAGEPLUGINS = qgif qico qjpeg qsvg
-       INPUTPLUGINS = qimsw-multi
-       KBDDRIVERPLUGINS = qlinuxinputkbddriver
-       MOUSEDRIVERPLUGINS = qtslibmousehandler qpcmousedriver qlinuxtpmousedriver
-       SQLPLUGINS = qsqldb2 qsqloci qsqltds qsqlodbc qsqlpsql qsqlibase qsqlmysql qsqlite2 qsqlite
-       PHONONPLUGINS = phonon_waveout phonon_ds9 phonon_gstreamer phonon_qt7 phonon_mmf
-
-       ALLQTPLUGINS = $$ACCESSIBLEPLUGINS $$BEARERPLUGINS $$CODECPLUGINS $$DECORATIONPLUGINS $$GFXDRIVERPLUGINS $$GRAPHICSSYSTEMPLUGINS $$IMAGEPLUGINS $$INPUTPLUGINS $$KBDDRIVERPLUGINS $$MOUSEDRIVERPLUGINS $$SQLPLUGINS $$PHONONPLUGINS
-
-       QT_PLUGINPATH =
-       contains(ALLQTPLUGINS, $$QTPLUG) {
-           # Determine the plugin path
-           contains(ACCESSIBLEPLUGINS, $$QTPLUG): QT_PLUGINPATH = accessible
-           contains(BEARERPLUGINS, $$QTPLUG): QT_PLUGINPATH = bearer
-           contains(CODECPLUGINS, $$QTPLUG): QT_PLUGINPATH = codecs
-           contains(DECORATIONPLUGINS, $$QTPLUG): QT_PLUGINPATH = decorations
-           contains(GFXDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = gfxdrivers
-           contains(GRAPHICSSYSTEMPLUGINS, $$QTPLUG): QT_PLUGINPATH = graphicssystems
-           contains(IMAGEPLUGINS, $$QTPLUG): QT_PLUGINPATH = imageformats
-           contains(INPUTPLUGINS, $$QTPLUG): QT_PLUGINPATH = inputmethods
-           contains(KBDDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = kbddrivers
-           contains(MOUSEDRIVERPLUGINS, $$QTPLUG): QT_PLUGINPATH = mousedrivers
-           contains(SQLPLUGINS, $$QTPLUG):  QT_PLUGINPATH = sqldrivers
-           contains(PHONONPLUGINS, $$QTPLUG): QT_PLUGINPATH = phonon_backend
-        }
+       QT_PLUGINPATH = $$eval(QT_PLUGIN.$${QTPLUG}.TYPE)
 
         # Generate the plugin linker line
         target_qt:isEqual(TARGET, QTPLUG) {
index 363664b..b84fa47 100644 (file)
@@ -20,6 +20,20 @@ contains(QT_CONFIG, c++11):CONFIG += c++11
 contains(QT_CONFIG, static):CONFIG += static
 else:CONFIG += shared
 
+!build_pass:static {
+    isEmpty(MODULE): MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
+
+    MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_plugin_$${MODULE}.pri
+
+    MODULE_PRI_CONT = \
+        "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE"
+    write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
+
+    pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
+    pritarget.files = $$MODULE_PRI
+    INSTALLS += pritarget
+}
+
 target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
 INSTALLS += target