[libcamera-devel] [PATCH v3] meson: options: Add an option to control compilation of qcam

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Jun 25 05:33:33 CEST 2020


Hi Umang,

On Tue, Jun 23, 2020 at 05:30:45AM +0000, Umang Jain wrote:
> Hi Niklas,
> 
> One query:
> The value of global 'auto_features' defaults to 'auto' (which in turn means
> require: false). I didn't see 'auto_features' being declared anywhere in the
> codebase.
> 
> With this patch applied:
> $ meson --auto-features=auto build && ninja -C build
> built qcam for me. It shouldn't have been built because 'auto'
> implies 'requires: false', no?

"requires : false" doesn't imply that qcam won't get built, it implies
that if its dependencies are not found, it can be skipped. In this case,
with the qcam option having the value 'auto', qcam will be built if Qt
is found, and skipped otherwise. If you set the qcam option to 'enabled'
instead, and Qt is missing, meson will complain. If you set the option
to 'disabled', qcam will not be built, regardless of whether Qt is
available or not. I haven't tested this though, so my understanding
could be wrong.

> Maybe a meson bug or am I missing something.
> 
> On 6/22/20 6:59 PM, Niklas Söderlund wrote:
> > Add an option to control compilation of the qcam test application. The
> > default behavior is to compile qcam, no change in behavior without user
> > intervention.
> >
> > Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > * Changes since v2
> > - Default to auto instead of enabled.
> >
> > * Changes since v1
> > - Sort options alphabetical in meson_options.txt
> > - Use feature instead of boolean and attach it to the qt5_dep
> > ---
> >   meson_options.txt    | 5 +++++
> >   src/qcam/meson.build | 2 +-
> >   2 files changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/meson_options.txt b/meson_options.txt
> > index badace151bb62bc9..e9e815fde366c89d 100644
> > --- a/meson_options.txt
> > +++ b/meson_options.txt
> > @@ -19,6 +19,11 @@ option('pipelines',
> >           choices : ['ipu3', 'raspberrypi', 'rkisp1', 'simple', 'uvcvideo', 'vimc'],
> >           description : 'Select which pipeline handlers to include')
> >   
> > +option('qcam',
> > +        type : 'feature',
> > +        value : 'auto',
> > +        description : 'Compile the qcam test application')
> > +
> >   option('test',
> >           type : 'boolean',
> >           description: 'Compile and include the tests')
> > diff --git a/src/qcam/meson.build b/src/qcam/meson.build
> > index 045db52acf26d71b..6ea886a32236d40f 100644
> > --- a/src/qcam/meson.build
> > +++ b/src/qcam/meson.build
> > @@ -22,7 +22,7 @@ qt5 = import('qt5')
> >   qt5_dep = dependency('qt5',
> >                        method : 'pkg-config',
> >                        modules : ['Core', 'Gui', 'Widgets'],
> > -                     required : false)
> > +                     required : get_option('qcam'))
> >   
> >   if qt5_dep.found()
> >       qcam_deps = [
> 
> Reviewed-by: Umang Jain <email at uajain.com>

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list