[libcamera-devel] [PATCH v2 1/3] apps: qcam: Port to Qt 6

Kieran Bingham kieran.bingham at ideasonboard.com
Mon Apr 22 13:31:25 CEST 2024


Quoting Neal Gompa via libcamera-devel (2024-01-21 22:39:53)
> 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.

It seems that the upgrade to Qt6 also breaks the positioning of the 'No
Image' background in qcam when you stop the camera.

Could you check that please?

--
Kieran


> 
> Signed-off-by: Neal Gompa <neal at gompa.dev>
> ---
>  README.rst                |  2 +-
>  meson.build               |  2 +-
>  src/apps/qcam/meson.build | 45 +++++++++++----------------------------
>  3 files changed, 15 insertions(+), 34 deletions(-)
> 
> diff --git a/README.rst b/README.rst
> index 315738ee..6f1c9302 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 cb6b666a..4c315e2a 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..c7fcfbeb 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',
> +qt6 = import('qt6')
> +qt6_dep = dependency('qt6',
>                       method : 'pkg-config',
> -                     modules : ['Core', 'Gui', 'Widgets'],
> +                     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.43.0
>


More information about the libcamera-devel mailing list