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>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Neal Gompa 2024-01-21 17:39:53 -05:00 committed by Kieran Bingham
parent 929978ee65
commit 71aa3ceec3
3 changed files with 15 additions and 34 deletions

View file

@ -88,7 +88,7 @@ for cam: [optional]
- libsdl2-dev: Enables the SDL sink - libsdl2-dev: Enables the SDL sink
for qcam: [optional] for qcam: [optional]
libtiff-dev qtbase5-dev qttools5-dev-tools libtiff-dev qt6-base-dev qt6-tools-dev-tools
for tracing with lttng: [optional] for tracing with lttng: [optional]
liblttng-ust-dev python3-jinja2 lttng-tools liblttng-ust-dev python3-jinja2 lttng-tools

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
project('libcamera', 'c', 'cpp', project('libcamera', 'c', 'cpp',
meson_version : '>= 0.60', meson_version : '>= 0.63',
version : '0.3.0', version : '0.3.0',
default_options : [ default_options : [
'werror=true', 'werror=true',

View file

@ -1,13 +1,13 @@
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
qt5 = import('qt5') qt6 = import('qt6')
qt5_dep = dependency('qt5', qt6_dep = dependency('qt6',
method : 'pkg-config', method : 'pkg-config',
modules : ['Core', 'Gui', 'Widgets'], modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'],
required : get_option('qcam'), required : get_option('qcam'),
version : '>=5.4') version : '>=6.2')
if not qt5_dep.found() if not qt6_dep.found()
qcam_enabled = false qcam_enabled = false
subdir_done() subdir_done()
endif endif
@ -20,46 +20,27 @@ qcam_sources = files([
'main.cpp', 'main.cpp',
'main_window.cpp', 'main_window.cpp',
'message_handler.cpp', 'message_handler.cpp',
'viewfinder_gl.cpp',
'viewfinder_qt.cpp', 'viewfinder_qt.cpp',
]) ])
qcam_moc_headers = files([ qcam_moc_headers = files([
'cam_select_dialog.h', 'cam_select_dialog.h',
'main_window.h', 'main_window.h',
'viewfinder_gl.h',
'viewfinder_qt.h', 'viewfinder_qt.h',
]) ])
qcam_resources = files([ qcam_resources = files([
'assets/feathericons/feathericons.qrc', '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', resources = qt6.preprocess(moc_headers : qcam_moc_headers,
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,
qresources : qcam_resources, qresources : qcam_resources,
dependencies : qt5_dep) dependencies : qt6_dep)
qcam = executable('qcam', qcam_sources, resources, qcam = executable('qcam', qcam_sources, resources,
install : true, install : true,
@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources,
libatomic, libatomic,
libcamera_public, libcamera_public,
libtiff, libtiff,
qt5_dep, qt6_dep,
], ],
cpp_args : qt5_cpp_args) cpp_args : qt6_cpp_args)