[vlc-commits] [Git][videolan/vlc][master] 7 commits: meson: add missing Qt5 plugins

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Feb 2 06:56:32 UTC 2023



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
0bf21c1d by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: add missing Qt5 plugins

- - - - -
d70f39bf by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: add missing versioned qplatformnativeinterface.h include

Needed since bf43ffde4b45a45861530722dfdcb007f48d2f33

- - - - -
da44f40c by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: add Qt5Wayland dependency if it's available

- - - - -
8ebe8834 by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: use the same dependency for vlc-qt-check as for the plugin

- - - - -
75c13947 by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: move GTK detection and disable for Windows/Darwin

The same way it's done in configure.ac.

- - - - -
63c0e892 by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: add missing QT5_HAS_GTK

- - - - -
8866e7c7 by Steve Lhomme at 2023-02-02T06:41:39+00:00
meson: add a TODO for qmlgencache support

Not sure how to handle it.

- - - - -


2 changed files:

- modules/gui/qt/meson.build
- modules/meson.build


Changes:

=====================================
modules/gui/qt/meson.build
=====================================
@@ -543,6 +543,55 @@ if qt5_dep.found()
 
     qt_sources = files('qt.cpp')
 
+    # Qt plugins
+    qt_static_check = '''
+    #include <qconfig.h>
+    #ifndef QT_STATIC
+    #error Qt using shared libraries
+    #endif
+    '''
+    if cpp.compiles(qt_static_check, dependencies: qt5_dep, name: 'Qt5 compiled with static libraries')
+        qt_extra_deps += [
+            dependency('qtgraphicaleffectsplugin',  required: false),
+            dependency('qtquick2plugin ',           required: false),
+            dependency('qtquickcontrols2plugin',    required: false),
+            dependency('qtquicktemplates2plugin',   required: false),
+            dependency('qquicklayoutsplugin',       required: false),
+            dependency('windowplugin',              required: false),
+            dependency('qmlshapesplugin',           required: false),
+            dependency('qmlplugin',                 required: false),
+            dependency('modelsplugin',              required: false),
+            dependency('qsvg',                      required: false),
+            dependency('qsvgicon',                  required: false),
+            dependency('qtgraphicaleffectsprivate', required: false),
+            dependency('qjpeg',                     required: false),
+        ]
+
+        qt_extra_deps += [
+            dependency('qxcb-glx-integration',      required: false),
+            dependency('qxcb',                      required: false),
+        ]
+
+        qt_extra_deps += [
+            dependency('qwayland-generic',          required: false),
+            dependency('qwayland-egl',              required: false),
+            dependency('xdg-shell',                 required: false),
+        ]
+
+        if host_system == 'windows'
+            qt_extra_deps += [
+                dependency('qwindows',              required: false),
+                dependency('qwindowsvistastyle',    required: false),
+            ]
+        endif
+
+        if host_system == 'darwin'
+            qt_extra_deps += [
+                dependency('qcocoa',                required: false),
+            ]
+        endif
+    endif
+
     if host_system == 'windows'
         qt_extra_deps += [
             cc.find_library('comctl32'),
@@ -573,14 +622,53 @@ if qt5_dep.found()
         endif
     endif
 
+    # Qt5 wayland
+    wayland_qt5_dep = dependency('qt5', modules: ['WaylandClient'], required: false)
+
+    if wayland_qt5_dep.found()
+        qt_extra_deps += [wayland_dep]
+        qt_extra_flags += '-DQT5_HAS_WAYLAND'
+    endif
+
     if get_option('qt_qml_debug')
         qt_extra_flags += '-DQT_QML_DEBUG'
     endif
 
     if host_system == 'windows'
         qt_cppargs += libcom_cppflags
+        qt_extra_flags += '-DQPNI_HEADER=<' + qt5_dep.version() + '/QtGui/qpa/qplatformnativeinterface.h>'
+    endif
+
+    if not (host_system in ['windows', 'darwin'])
+        #Qt GTK theme module
+        gtk_dep = dependency(
+            'gtk+-3.0',
+            version: '>=3.20',
+            required: get_option('qt_gtk')
+        )
+
+        if gtk_dep.found()
+            vlc_modules += {
+                'name' : 'qt_gtktheme',
+                'sources' : files(
+                    'style/gtkthemeprovider/gtk_compat.cpp',
+                    'style/gtkthemeprovider/gtk_compat.h',
+                    'style/gtkthemeprovider/gtkthemeprovider.cpp',
+                    'style/gtkthemeprovider/gtk_util.cpp',
+                    'style/gtkthemeprovider/gtk_util.h',
+                    'style/gtkthemeprovider/nav_button_provider_gtk.cpp',
+                    'style/gtkthemeprovider/nav_button_provider_gtk.h',
+                    'style/gtkthemeprovider/scoped_gobject.h'
+                ),
+                'dependencies' : [gtk_dep]
+            }
+
+            qt_extra_flags += '-DQT5_HAS_GTK'
+        endif
     endif
 
+    # TODO support qmlcachegen
+
     vlc_modules += {
         'name' : 'qt',
         'sources' : [qt5pre_files, qt_sources, some_sources],
@@ -590,28 +678,4 @@ if qt5_dep.found()
         'cpp_args' : [qt_extra_flags, qt_cppargs]
     }
 
-    #Qt GTK theme module
-    gtk_dep = dependency(
-      'gtk+-3.0',
-      version: '>=3.20',
-      required: get_option('qt_gtk')
-    )
-
-    if gtk_dep.found()
-      vlc_modules += {
-         'name' : 'qt_gtktheme',
-         'sources' : files(
-             'style/gtkthemeprovider/gtk_compat.cpp',
-             'style/gtkthemeprovider/gtk_compat.h',
-             'style/gtkthemeprovider/gtkthemeprovider.cpp',
-             'style/gtkthemeprovider/gtk_util.cpp',
-             'style/gtkthemeprovider/gtk_util.h',
-             'style/gtkthemeprovider/nav_button_provider_gtk.cpp',
-             'style/gtkthemeprovider/nav_button_provider_gtk.h',
-             'style/gtkthemeprovider/scoped_gobject.h'
-         ),
-        'dependencies' : [gtk_dep]
-      }
-    endif
-
 endif


=====================================
modules/meson.build
=====================================
@@ -231,11 +231,13 @@ subdir('lua')
 if qt5_dep.found()
     executable('vlc-qt-check',
         files('gui/qt/vlc-qt-check.cpp'),
-        dependencies: [qt5_dep],
+        dependencies: [qt5_dep, qt_extra_deps],
         include_directories: [vlc_include_dirs],
         build_by_default: true,
         install: true,
-        install_dir: get_option('libexecdir')
+        install_dir: get_option('libexecdir'),
+        c_args : qt_extra_flags,
+        cpp_args : qt_extra_flags,
     )
 endif
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/23dff5090d51e0e9c1ce189e8f683a19df024891...8866e7c76cbc8ecc0147affcc150961773a96ed4

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/23dff5090d51e0e9c1ce189e8f683a19df024891...8866e7c76cbc8ecc0147affcc150961773a96ed4
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list