[libcamera-devel] [PATCH v2 1/3] qcam, cam: Move DNGWriter from qcam to cam
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Oct 19 11:38:24 CEST 2022
Hi Jacopo,
On Wed, Oct 19, 2022 at 10:22:05AM +0200, Jacopo Mondi via libcamera-devel wrote:
> On Tue, Oct 18, 2022 at 05:09:06PM +0900, Paul Elder via libcamera-devel wrote:
> > To prepare for adding DNG support to cam, move DNGWriter from qcam to
> > cam so that we only have inclusions from qcam to cam and not the other
> > way around.
> >
> > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> >
> > ---
> > Changes in v2:
> > - move libtiff dependency for cam to the next patch
> > ---
> > src/{qcam => cam}/dng_writer.cpp | 0
> > src/{qcam => cam}/dng_writer.h | 0
> > src/cam/meson.build | 1 +
> > src/qcam/main_window.cpp | 2 +-
> > src/qcam/meson.build | 2 +-
> > 5 files changed, 3 insertions(+), 2 deletions(-)
> > rename src/{qcam => cam}/dng_writer.cpp (100%)
> > rename src/{qcam => cam}/dng_writer.h (100%)
> >
> > diff --git a/src/qcam/dng_writer.cpp b/src/cam/dng_writer.cpp
> > similarity index 100%
> > rename from src/qcam/dng_writer.cpp
> > rename to src/cam/dng_writer.cpp
> > diff --git a/src/qcam/dng_writer.h b/src/cam/dng_writer.h
> > similarity index 100%
> > rename from src/qcam/dng_writer.h
> > rename to src/cam/dng_writer.h
> > diff --git a/src/cam/meson.build b/src/cam/meson.build
> > index 8259239f..9c766221 100644
> > --- a/src/cam/meson.build
> > +++ b/src/cam/meson.build
> > @@ -26,6 +26,7 @@ cam_cpp_args = []
> > libdrm = dependency('libdrm', required : false)
> > libjpeg = dependency('libjpeg', required : false)
> > libsdl2 = dependency('SDL2', required : false)
> > +libtiff = dependency('libtiff-4', required : false)
> >
> > if libdrm.found()
> > cam_cpp_args += [ '-DHAVE_KMS' ]
> > diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
> > index e0e5092e..f553ccb0 100644
> > --- a/src/qcam/main_window.cpp
> > +++ b/src/qcam/main_window.cpp
> > @@ -26,10 +26,10 @@
> > #include <QToolButton>
> > #include <QtDebug>
> >
> > +#include "../cam/dng_writer.h"
> > #include "../cam/image.h"
> >
> > #include "cam_select_dialog.h"
> > -#include "dng_writer.h"
> > #ifndef QT_NO_OPENGL
> > #include "viewfinder_gl.h"
> > #endif
> > diff --git a/src/qcam/meson.build b/src/qcam/meson.build
> > index 61861ea6..9f5759ff 100644
> > --- a/src/qcam/meson.build
> > +++ b/src/qcam/meson.build
> > @@ -49,7 +49,7 @@ if tiff_dep.found()
>
> You can now remove tiff_dep and use libtiff ?
>
>
> > qt5_cpp_args += ['-DHAVE_TIFF']
> > qcam_deps += [tiff_dep]
> > qcam_sources += files([
> > - 'dng_writer.cpp',
> > + '../cam/dng_writer.cpp',
>
> With 2/3 applied, I would rather define a symbol for the dng_sources
> in cam/meson.build
>
> dng_sources = []
> if libtiff.found()
> cam_cpp_args += ['-DHAVE_TIFF']
> dng_sources = files([
> 'dng_writer.cpp',
> ])
> cam_sources += dng_sources
> endif
>
> And re-use it here in qcam/meson.build
>
> if libtiff.found()
> qt5_cpp_args += ['-DHAVE_TIFF']
> qcam_deps += [libtiff]
> qcam_sources += dng_sources
> endif
>
> The overall diff on top of 2/3 I have is:
>
> diff --git a/src/cam/meson.build b/src/cam/meson.build
> index 06dbea0645b7..b4336ba25c35 100644
> --- a/src/cam/meson.build
> +++ b/src/cam/meson.build
> @@ -52,11 +52,13 @@ if libsdl2.found()
> endif
> endif
>
> +dng_sources = []
> if libtiff.found()
> cam_cpp_args += ['-DHAVE_TIFF']
> - cam_sources += files([
> + dng_sources = files([
> 'dng_writer.cpp',
> ])
> + cam_sources += dng_sources
> endif
>
> cam = executable('cam', cam_sources,
> diff --git a/src/qcam/meson.build b/src/qcam/meson.build
> index 9f5759ff0786..8a816f86c91a 100644
> --- a/src/qcam/meson.build
> +++ b/src/qcam/meson.build
> @@ -44,13 +44,10 @@ qcam_deps = [
>
> qt5_cpp_args = ['-DQT_NO_KEYWORDS']
>
> -tiff_dep = dependency('libtiff-4', required : false)
> -if tiff_dep.found()
> +if libtiff.found()
> qt5_cpp_args += ['-DHAVE_TIFF']
> - qcam_deps += [tiff_dep]
> - qcam_sources += files([
> - '../cam/dng_writer.cpp',
> - ])
> + qcam_deps += [libtiff]
> + qcam_sources += dng_sources
> endif
This will break on systems where libevent is not found. cam will be
skipped, and dng_sources won't be defined.
If we want to avoid code duplication between cam/meson.build and
qcam/meson.build, let's create an application static library for the
code shared between the two applictions. It wouldn't be installed, just
used internally to avoid compiling the same source files twice. I think
this can be done on top.
>
> if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget',
>
> > ])
> > endif
> >
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list