File 0001-apps-qcam-Port-to-Qt-6.patch of Package libcamera

From 1acc930187172ea4b27b1e368a8cc4d3811c3fd0 Mon Sep 17 00:00:00 2001
From: Neal Gompa <neal@gompa.dev>
Date: Wed, 17 Apr 2024 21:03:38 -0400
Subject: [PATCH] apps: qcam: Port to Qt 6

Open source Qt 5 has been effectively end of life since the release
of Qt 6, and Qt 6 has current LTS releases now.

This change ports qcam to Qt 6.2 and drops some of the baggage related
to Qt 5 that is no longer applicable.

Signed-off-by: Neal Gompa <neal@gompa.dev>
---
 README.rst                |  2 +-
 meson.build               |  2 +-
 src/apps/qcam/meson.build | 47 ++++++++++++---------------------------
 3 files changed, 16 insertions(+), 35 deletions(-)

diff --git a/README.rst b/README.rst
index 1da7a3d6..30ec3f6b 100644
--- a/README.rst
+++ b/README.rst
@@ -88,7 +88,7 @@ for cam: [optional]
         - libsdl2-dev: Enables the SDL sink
 
 for qcam: [optional]
-        libtiff-dev qtbase5-dev qttools5-dev-tools
+        libtiff-dev qt6-base-dev qt6-tools-dev-tools
 
 for tracing with lttng: [optional]
         liblttng-ust-dev python3-jinja2 lttng-tools
diff --git a/meson.build b/meson.build
index 740ead1b..5c162e12 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: CC0-1.0
 
 project('libcamera', 'c', 'cpp',
-    meson_version : '>= 0.60',
+    meson_version : '>= 0.63',
     version : '0.2.0',
     default_options : [
         'werror=true',
diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build
index 6cf4c171..ca310bc9 100644
--- a/src/apps/qcam/meson.build
+++ b/src/apps/qcam/meson.build
@@ -1,13 +1,13 @@
 # SPDX-License-Identifier: CC0-1.0
 
-qt5 = import('qt5')
-qt5_dep = dependency('qt5',
-                     method : 'pkg-config',
-                     modules : ['Core', 'Gui', 'Widgets'],
+qt6 = import('qt6')
+qt6_dep = dependency('qt6',
+                     method : 'auto',
+                     modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'],
                      required : get_option('qcam'),
-                     version : '>=5.4')
+                     version : '>=6.2')
 
-if not qt5_dep.found()
+if not qt6_dep.found()
     qcam_enabled = false
     subdir_done()
 endif
@@ -20,46 +20,27 @@ qcam_sources = files([
     'main.cpp',
     'main_window.cpp',
     'message_handler.cpp',
+    'viewfinder_gl.cpp',
     'viewfinder_qt.cpp',
 ])
 
 qcam_moc_headers = files([
     'cam_select_dialog.h',
     'main_window.h',
+    'viewfinder_gl.h',
     'viewfinder_qt.h',
 ])
 
 qcam_resources = files([
     'assets/feathericons/feathericons.qrc',
+    'assets/shader/shaders.qrc',
 ])
 
-qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS']
+qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS']
 
-if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget',
-                         dependencies : qt5_dep, args : '-fPIC')
-    qcam_sources += files([
-        'viewfinder_gl.cpp',
-    ])
-    qcam_moc_headers += files([
-        'viewfinder_gl.h',
-    ])
-    qcam_resources += files([
-        'assets/shader/shaders.qrc'
-    ])
-endif
-
-# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until
-# Qt 5.13. clang 10 introduced the same warning, but detects more issues
-# that are not fixed in Qt yet. Disable the warning manually in both cases.
-if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and
-     qt5_dep.version().version_compare('<5.13')) or
-    (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0')))
-    qt5_cpp_args += ['-Wno-deprecated-copy']
-endif
-
-resources = qt5.preprocess(moc_headers : qcam_moc_headers,
+resources = qt6.preprocess(moc_headers : qcam_moc_headers,
                            qresources : qcam_resources,
-                           dependencies : qt5_dep)
+                           dependencies : qt6_dep)
 
 qcam  = executable('qcam', qcam_sources, resources,
                    install : true,
@@ -69,6 +50,6 @@ qcam  = executable('qcam', qcam_sources, resources,
                        libatomic,
                        libcamera_public,
                        libtiff,
-                       qt5_dep,
+                       qt6_dep,
                    ],
-                   cpp_args : qt5_cpp_args)
+                   cpp_args : qt6_cpp_args)
-- 
2.44.0

openSUSE Build Service is sponsored by