[Interest] Require a qt_finalize_target() call in CMake user projects that use a static Qt
Marius Kittler
mkittler at suse.de
Wed May 5 13:32:18 CEST 2021
Hi,
to me the most important point is that I can still stay in control over which
plugins are linked against and which not. At best I can turn off pulling
plugins automatically completely to avoid bloating my applications and keep my
own build system logic for deciding what plugins are needed.
I must say that Qt 6 made this harder (in contrast to my heavily patched Qt 5
version). I'm not quite sure how to disable pulling plugins automatically and
without https://github.com/Martchus/qtutilities/commit/
7183ec501c90bfc38538fd7a810533b8a8a78cff Qt's CMake modules pulled in tons of
unwanted plugins automatically.
It is problematic that Qt 6 (and I suppose also recent Qt 5 versions) seemed
to introduce new features regarding static plugins in CMake but the
documentation wasn't extended, e.g. https://doc.qt.io/qt-6/plugins-howto.html#static-plugins looks is still only covering qmake. I have already
found https://doc.qt.io/qt-6/qt-import-plugins.html but it doesn't show how to
disable the automatic inclusion completely and the variable
`QT_SKIP_AUTO_QML_PLUGIN_INCLUSION` I've had to use in the mentioned commit
wasn't explained at all.
To give you feedback on `qt_finalize_target()`: I would have no problem with
an extra call and requiring an up-to-date CMake installation but don't forget
to update the documentation and keep the use case of linking against plugins
manually in mind.
By the way, thanks for making this part of Qt's build system better! I've
mentioned that I had to patch Qt 5 a lot (so it can cope with all static
dependencies correctly when using CMake) and with Qt 6 all of this is not
necessary anymore. So despite the mentioned problems that's actually already a
huge improvement.
Best Regards
Marius
More information about the Interest
mailing list