[vlc-devel] [PATCH] configure.ac: add option to disable Qt check

Rémi Denis-Courmont remi at remlab.net
Fri Sep 27 16:28:15 CEST 2019


Hi,

There are no builds that *require* Qt, as dummy is always available. To force Qt, you need to pass "-Iqt,none" regardless of this patch. This patch only breaks error handling effectively. And the check is already compiled out on Windows, while we already have the --disable-vlc switch for embedded builds. So neither of these scenarii are valid use cases AFAICT.

Besides it's not even that slow without the sanitizers.

Le 27 septembre 2019 11:18:46 GMT+03:00, Alexandre Janniaux <ajanni at videolabs.io> a écrit :
>Qt check is useless for builds that require the Qt interface to be used
>like embedded systems targets or that cannot fail to start like for
>Windows static builds. As it takes time to start the vlc-qt-check, this
>patch provides a way to disable this.
>
>This shouldn't be used for any other build or test.
>---
> configure.ac               |  5 +++++
> modules/gui/qt/Makefile.am |  4 ++++
> modules/gui/qt/qt.cpp      | 18 +++++++++++-------
> 3 files changed, 20 insertions(+), 7 deletions(-)
>
>diff --git a/configure.ac b/configure.ac
>index 210b4ca5371..b864ab2e483 100644
>--- a/configure.ac
>+++ b/configure.ac
>@@ -3932,6 +3932,11 @@ AC_ARG_ENABLE([qt-qml-debug],
>   AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
> AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
>
>+AC_ARG_ENABLE([qt-check],
>+  AS_HELP_STRING([--disable-qt-check],
>+    [Disable Qt check before starting the interface. This will prevent
>Qt module from determining if it can start correctly, and crash if it
>cannot.]))
>+AM_CONDITIONAL([HAVE_QT_CHECK], [test "${enable_qt_check}" != "no"])
>+
> AS_IF([test "${enable_qt}" != "no"], [
>   ALIASES="${ALIASES} qvlc"
> ])
>diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
>index af4a5d05cc8..06c372d6cbb 100644
>--- a/modules/gui/qt/Makefile.am
>+++ b/modules/gui/qt/Makefile.am
>@@ -681,16 +681,20 @@ gui/qt/resources.cpp: gui/qt/vlc.qrc
>$(libqt_plugin_la_RES) $(libqt_plugin_la_QM
>
> endif
>
>+if HAVE_QT_CHECK
> vlc_qt_check_SOURCES = gui/qt/vlc-qt-check.cpp
> vlc_qt_check_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) -fPIC
> vlc_qt_check_LDADD = $(QT_LIBS)
>+endif
>
> if ENABLE_QT
> gui_LTLIBRARIES += libqt_plugin.la
> BUILT_SOURCES += $(nodist_libqt_plugin_la_SOURCES)
> if !HAVE_WIN32
> if !HAVE_OS2
>+if HAVE_QT_CHECK
> pkglibexec_PROGRAMS += vlc-qt-check
> endif
> endif
> endif
>+endif
>diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
>index 798f1c41e82..a5796fbd535 100644
>--- a/modules/gui/qt/qt.cpp
>+++ b/modules/gui/qt/qt.cpp
>@@ -29,14 +29,16 @@
>
> #include <stdlib.h>
> #include <unistd.h>
>-#ifndef _POSIX_SPAWN
>-# define _POSIX_SPAWN (-1)
>-#endif
>-#if (_POSIX_SPAWN >= 0)
>-# include <spawn.h>
>-# include <sys/wait.h>
>
>+#ifdef HAVE_QT_CHECK
>+# ifndef _POSIX_SPAWN
>+#  define _POSIX_SPAWN (-1)
>+# endif
>+# if (_POSIX_SPAWN >= 0)
>+#  include <spawn.h>
>+#  include <sys/wait.h>
> extern "C" char **environ;
>+# endif
> #endif
>
> #include <QApplication>
>@@ -411,7 +413,8 @@ static int Open( vlc_object_t *p_this, bool
>isDialogProvider )
>         return VLC_EGENERIC;
> #endif
>
>-#if (_POSIX_SPAWN >= 0)
>+#ifdef HAVE_QT_CHECK
>+# if (_POSIX_SPAWN >= 0)
>     /* Check if QApplication works */
>   char *path = config_GetSysPath(VLC_PKG_LIBEXEC_DIR, "vlc-qt-check");
>     if (unlikely(path == NULL))
>@@ -433,6 +436,7 @@ static int Open( vlc_object_t *p_this, bool
>isDialogProvider )
>         msg_Dbg(p_this, "Qt check failed (%d). Skipping.", status);
>         return VLC_EGENERIC;
>     }
>+# endif
> #endif
>
> /* Get the playlist before the lock to avoid a lock-order-inversion */
>--
>2.23.0
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20190927/a42e7f77/attachment.html>


More information about the vlc-devel mailing list