[Interest] When does Qt load its plugins?

Elvis Stansvik elvstone at gmail.com
Wed Jul 13 20:11:30 CEST 2016


Thanks a lot for the clarifications Thiago!

It seems that despite my uncertainness, I had included just the ones I
need. And yes, I was confused about the bearer plugins, for some
reason I had in my mind that they were for GPS.

You're right about the Gtk platform plugin, I should probably be a
good citizen and include it, despite it increasing the size of my
AppImage quite a bit (due to linking to Gtk).

Regarding Wayland, I think I'll hold off on that for now. For
convenience, I'm using the pre-built Qt available in the EPEL
repositories for CentOS 6 (my build environment), and it doesn't have
the Wayland plugin.

Again, thanks, I feel more confident in what I've included now.

Elvis

2016-07-13 17:55 GMT+02:00 Thiago Macieira <thiago.macieira at intel.com>:
> Em quarta-feira, 13 de julho de 2016, às 14:14:34 PDT, Elvis Stansvik
> escreveu:
>> If I'm going to guess a little:
>> > tmp/usr/lib/qt5/plugins/bearer/libqconnmanbearer.so
>> > tmp/usr/lib/qt5/plugins/bearer/libqgenericbearer.so
>> > tmp/usr/lib/qt5/plugins/bearer/libqnmbearer.so
>>
>> I don't think I need these, since I'm not doing anything with a GPS?
>
> Nor do they.
>
> That's about the network bearer: those plugins tell QNetworkConfiguration
> whether you're connected or not, etc. On desktop Linux, you don't need them
> and the application can assume you're always connected. (yes, it can assume
> that)
>
>> > tmp/usr/lib/qt5/plugins/designer/libcontainerextension.so
>> > tmp/usr/lib/qt5/plugins/designer/libcustomwidgetplugin.so
>> > tmp/usr/lib/qt5/plugins/designer/libqquickwidget.so
>> > tmp/usr/lib/qt5/plugins/designer/libtaskmenuextension.so
>> > tmp/usr/lib/qt5/plugins/designer/libworldtimeclockplugin.so
>>
>> These I think are only required by Qt Designer?
>
> Correct.
>
>> > tmp/usr/lib/qt5/plugins/generic/libqevdevkeyboardplugin.so
>> > tmp/usr/lib/qt5/plugins/generic/libqevdevmouseplugin.so
>> > tmp/usr/lib/qt5/plugins/generic/libqevdevtabletplugin.so
>> > tmp/usr/lib/qt5/plugins/generic/libqevdevtouchplugin.so
>> > tmp/usr/lib/qt5/plugins/generic/libqtuiotouchplugin.so
>>
>> These ones I'm unsure about, they sound quite important?
>
> That depends on your platform plugin. If you're using the XCB plugin (as a
> regular desktop Linux application would), then you don't need those. If you
> use EGLFS or DirectFB or some other, you may need those to get the input from
> the system.
>
>> > tmp/usr/lib/qt5/plugins/iconengines/libqsvgicon.so
>>
>> If I want to use SVG icons I'll include this one?
>
> Correct. Note: this is about SVG icons in QIcon, not about generic SVG support
> in QImage.
>
> If you're on desktop Linux, you want this as SVG icons are part of the icon
> theme spec.
>
>> > tmp/usr/lib/qt5/plugins/imageformats/libqgif.so
>> > tmp/usr/lib/qt5/plugins/imageformats/libqico.so
>> > tmp/usr/lib/qt5/plugins/imageformats/libqjpeg.so
>> > tmp/usr/lib/qt5/plugins/imageformats/libqsvg.so
>>
>> These I'll include according to my requirements, that's easy.
>
> Indeed.
>
>> > tmp/usr/lib/qt5/plugins/platforminputcontexts/libcomposeplatforminputconte
>> > xtplugin.so
>> > tmp/usr/lib/qt5/plugins/platforminputcontexts/libibusplatforminputcontext
>> > plugin.so
>> These ones's I'm unsure about. They could be important.. or are they
>> just for specialized input methods?
>
> They are.
>
> The first one is responsible for support for the Compose key and dead keys on
> X11. You want those because your users may use them.
>
> The second is about accessibility. Include it.
>
>> > tmp/usr/lib/qt5/plugins/platforms/libqlinuxfb.so
>> > tmp/usr/lib/qt5/plugins/platforms/libqminimal.so
>> > tmp/usr/lib/qt5/plugins/platforms/libqoffscreen.so
>> > tmp/usr/lib/qt5/plugins/platforms/libqxcb.so
>>
>> Out of these I think I'll only need the XCB plugin, since my app is
>> exclusively for X11.
>
> Correct. Though you may consider including the Wayland one too (not on your
> list).
>
>> > tmp/usr/lib/qt5/plugins/platformthemes/libqgtk2.so
>>
>> This one I don't need, unless I want my application to integrate
>> better in a Gtk-based desktop environment..? (guessing here)
>
> Which means you want it.
>
>> > tmp/usr/lib/qt5/plugins/printsupport/libcupsprintersupport.so
>>
>> I'll include this if I want CUPS printing support (I think I do).
>
> Right. If you're including QtPrintSupport library, you probably want this.
>
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_debugger.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_inspector.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_local.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_native.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_profiler.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_server.so
>> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_tcp.so
>>
>> I'm not using QML, so I won't need these?
>
> And they are for debugging.
>
>> > tmp/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so
>>
>> And not SQLite, so no need for this.
>
> If you don't deploy QtSql, you don't need any of the sqldrivers. If you do,
> you should find out which drivers you need.
>
>> > tmp/usr/lib/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
>>
>> This one I think is important, but could someone confirm?
>
> Yes, it's required to get OpenGL on X (a.k.a. GLX).
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest



More information about the Interest mailing list