[libcamera-devel] [PATCH 3/3] meson: Summarize which applications and adaptation layers are built
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Mar 23 20:41:46 CET 2021
Hi Kieran,
On Tue, Mar 23, 2021 at 04:02:37PM +0000, Kieran Bingham wrote:
> On 23/03/2021 15:33, Laurent Pinchart wrote:
> > On Tue, Mar 23, 2021 at 03:26:03PM +0000, Kieran Bingham wrote:
> >> On 20/03/2021 21:45, Laurent Pinchart wrote:
> >>> Add the application and adaptation layers being built to the meson
> >>> summary. The summary now prints
> >>>
> >>> libcamera 0.0.0
> >>>
> >>> Configuration
> >>> Enabled pipelines: ipu3
> >>> raspberrypi
> >>> rkisp1
> >>> simple
> >>> uvcvideo
> >>> vimc
> >>> GStreamer support: True
> >>> V4L2 emulation support: True
> >>> cam application: True
> >>> qcam application: True
> >>
> >> What about tests, Documentation, Android(/android platform?)?
> >
> > I've forgotten Android indeed, I'll add it. For tests and documentation,
> > I wasn't sure whether to include them or leave them out. There are
> > multiple reasons to include a feature in the summary:
> >
> > - making sure it's not left out (for instance to ensure that our
> > compilation tests don't mistakenly forget to enable some components,
> > decreasing test coverage)
>
> Yes, helpful to see what was enabled or disabled.
>
> >
> > - giving feedback to users (to avoid "I don't get a cam executable" bug
> > reports that would likely flood us if we were to silently disable cam,
> > if it's explicitly disabled in the summary then hopefully users will
> > know that something has to be done (but maybe the bug reports will
> > only turn into "cam is disabled for me" :-))
>
> Indeed, this is important too. I've already seen pastes of the meson
> build thrown about. The summary is valuable for some one who has to read
> that, without having access to that specific environment when dealing
> with bug reports or such.
>
> > For tests and documentation, it may not be as useful. But maybe there
> > are reasons I'm missing ? You usually take the role of the community
> > manager who cares about the user experience, so if you think there's
> > value in reporting tests and documentation too, I'll follow your advices
> > :-)
>
> It will provide /us/ with valuable information on what has / hasn't been
> configured when someone sends a paste of their build.
>
> And for the same as your cam example
> Them: "I want to run the tests, but I can't find the binaries"
> Us: "I can see from your pasted configuration summary that you have not
> enabled the tests in your build".
>
> That can even filter into our understanding of if someone has run the
> tests on patches they submit.
>
> "Oh, thanks for the patch, I noticed in the paste of your build over
> there that you don't have tests enabled ... have you successfully run
> the tests on the patch you submitted?"
>
> Maybe we won't require external contributors to run the tests for every
> patch if we have automated tests on submission, but at least if they see
> that there is a summary report saying:
>
> Unit Tests: False
>
> Then the reader might think - oh - there are tests I could enable...
All these are good points. I'll add Android and unit tests and send a
v2. For documentation, we have a single option and separately compile
the sphinx and doxygen documentation. Do we need two entries in the
summary ? Or is documentation something we can skip ? I won't include it
in v2, we can do it on top.
> >> Can we include those in the summary? (Either here or on top...)
> >>
> >> Either way,
> >>
> >> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >>
> >>> Subprojects
> >>> libyuv: YES
> >>>
> >>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> >>> ---
> >>> meson.build | 4 ++++
> >>> src/cam/meson.build | 3 +++
> >>> src/gstreamer/meson.build | 3 +++
> >>> src/qcam/meson.build | 3 +++
> >>> src/v4l2/meson.build | 3 +++
> >>> 5 files changed, 16 insertions(+)
> >>>
> >>> diff --git a/meson.build b/meson.build
> >>> index 1768f6eaf98e..34d7959edd8d 100644
> >>> --- a/meson.build
> >>> +++ b/meson.build
> >>> @@ -168,4 +168,8 @@ py_mod.find_installation('python3', modules: py_modules)
> >>> ## Summarise Configurations
> >>> summary({
> >>> 'Enabled pipelines': pipelines,
> >>> + 'GStreamer support': gst_enabled,
> >>> + 'V4L2 emulation support': v4l2_enabled,
> >>> + 'cam application': cam_enabled,
> >>> + 'qcam application': qcam_enabled,
> >>> }, section : 'Configuration')
> >>> diff --git a/src/cam/meson.build b/src/cam/meson.build
> >>> index 65784beda4e6..5e1a7f387d60 100644
> >>> --- a/src/cam/meson.build
> >>> +++ b/src/cam/meson.build
> >>> @@ -3,9 +3,12 @@
> >>> libevent = dependency('libevent_pthreads', required : get_option('cam'))
> >>>
> >>> if not libevent.found()
> >>> + cam_enabled = false
> >>> subdir_done()
> >>> endif
> >>>
> >>> +cam_enabled = true
> >>> +
> >>> cam_sources = files([
> >>> 'buffer_writer.cpp',
> >>> 'capture.cpp',
> >>> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
> >>> index ea246dcdaa37..8cc811f84c8a 100644
> >>> --- a/src/gstreamer/meson.build
> >>> +++ b/src/gstreamer/meson.build
> >>> @@ -9,9 +9,12 @@ gstallocator_dep = dependency('gstreamer-allocators-1.0', version : gst_dep_vers
> >>> required : get_option('gstreamer'))
> >>>
> >>> if not glib_dep.found() or not gstvideo_dep.found() or not gstallocator_dep.found()
> >>> + gst_enabled = false
> >>> subdir_done()
> >>> endif
> >>>
> >>> +gst_enabled = true
> >>> +
> >>> libcamera_gst_sources = [
> >>> 'gstlibcamera-utils.cpp',
> >>> 'gstlibcamera.cpp',
> >>> diff --git a/src/qcam/meson.build b/src/qcam/meson.build
> >>> index df4ca988bfaa..acde7682162e 100644
> >>> --- a/src/qcam/meson.build
> >>> +++ b/src/qcam/meson.build
> >>> @@ -8,9 +8,12 @@ qt5_dep = dependency('qt5',
> >>> version : '>=5.4')
> >>>
> >>> if not qt5_dep.found()
> >>> + qcam_enabled = false
> >>> subdir_done()
> >>> endif
> >>>
> >>> +qcam_enabled = true
> >>> +
> >>> qcam_sources = files([
> >>> '../cam/options.cpp',
> >>> '../cam/stream_options.cpp',
> >>> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build
> >>> index c8b794247560..0accac194be4 100644
> >>> --- a/src/v4l2/meson.build
> >>> +++ b/src/v4l2/meson.build
> >>> @@ -1,9 +1,12 @@
> >>> # SPDX-License-Identifier: CC0-1.0
> >>>
> >>> if not get_option('v4l2')
> >>> + v4l2_enabled = false
> >>> subdir_done()
> >>> endif
> >>>
> >>> +v4l2_enabled = true
> >>> +
> >>> v4l2_compat_sources = files([
> >>> 'v4l2_camera.cpp',
> >>> 'v4l2_camera_file.cpp',
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list