[vlc-devel] [PATCH] gui: qt: don't condition plugin import based on QT_STATICPLUGIN

Alexandre Janniaux ajanni at videolabs.io
Fri Feb 26 14:07:09 UTC 2021


Hi,

This is probably about safety when using this [1]:

> As described in How to Create Qt Plugins, it is possible to switch off
> the automatic loading of plugins with CONFIG -= import_plugins, but this
> disables the generation of the weatherinfo_plugin_import.cpp file, and
> then we would have to do everything manually: add Q_IMPORT_PLUGIN
> somewhere in our code, define the QT_STATICPLUGIN preprocessor variable
> and link the plugin (as one has to do without qmake).

Your commit seems to be a silent revert of

commit 98ada626762841b5976ca71166fd2b4b970f19ea
Author: Martell Malone <martellmalone at gmail.com>
Date:   Tue Nov 25 13:23:38 2014 +0000

    Qt: add QT_STATICPLUGIN define as per the qt spec

    The QT spec says we should use QT_STATICPLUGIN defined if building a
    static plugin.

    As we are using out own makefile and not a qt .pro project we have to
    define it ourselves.

    This is then used to decide if we should import the modules
    QWindowsIntegrationPlugin and AccessibleFactory as these are not needed
    on a shared build.

    Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

What's the rationale behind this change?

[1]: https://www.qt.io/blog/2014/08/27/qt-weekly-18-static-linking-with-qt

On Fri, Feb 26, 2021 at 02:17:48PM +0100, Steve Lhomme wrote:
> QT_STATICPLUGIN is only used to export plugins, it has no impact on importing
> plugins (see qplugin.h).
>
> We even define it on our own when QT_STATIC is set.
> ---
>  modules/gui/qt/maininterface/mainui.cpp | 2 +-
>  modules/gui/qt/qt.cpp                   | 2 --
>  modules/gui/qt/qt.hpp                   | 4 ----
>  3 files changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/modules/gui/qt/maininterface/mainui.cpp b/modules/gui/qt/maininterface/mainui.cpp
> index 61bfc50e2e3..5d1cd1500f5 100644
> --- a/modules/gui/qt/maininterface/mainui.cpp
> +++ b/modules/gui/qt/maininterface/mainui.cpp
> @@ -118,7 +118,7 @@ bool MainUI::setup(QQmlEngine* engine)
>      {
>          for(auto& error: m_component->errors())
>              msg_Err(m_intf, "qml loading %s %s:%u", qtu(error.description()), qtu(error.url().toString()), error.line());
> -#ifdef QT_STATICPLUGIN
> +#ifdef QT_STATIC
>              assert( !"Missing qml modules from qt contribs." );
>  #else
>              msg_Err( m_intf, "Install missing modules using your packaging tool" );
> diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
> index 6bb0eefdb7a..a2da98b66e8 100644
> --- a/modules/gui/qt/qt.cpp
> +++ b/modules/gui/qt/qt.cpp
> @@ -72,7 +72,6 @@ extern "C" char **environ;
>   #include <QtPlugin>
>   #include <QQuickWindow>
>
> - #ifdef QT_STATICPLUGIN
>    Q_IMPORT_PLUGIN(QSvgIconPlugin)
>    Q_IMPORT_PLUGIN(QSvgPlugin)
>    Q_IMPORT_PLUGIN(QJpegPlugin)
> @@ -94,7 +93,6 @@ extern "C" char **environ;
>     Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin)
>     Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
>    #endif
> - #endif
>  #endif
>
>  #ifndef X_DISPLAY_MISSING
> diff --git a/modules/gui/qt/qt.hpp b/modules/gui/qt/qt.hpp
> index a283a02e63b..bb3447df546 100644
> --- a/modules/gui/qt/qt.hpp
> +++ b/modules/gui/qt/qt.hpp
> @@ -35,10 +35,6 @@
>
>  #include <qconfig.h>
>
> -#ifdef QT_STATIC
> -#define QT_STATICPLUGIN
> -#endif
> -
>  #define QT_NO_CAST_TO_ASCII
>  #include <QString>
>  #include <QUrl>
> --
> 2.29.2
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list