[libcamera-devel] [PATCH] libcamera: Turn the android option into a feature

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Sep 16 15:11:03 CEST 2020


On Wed, Sep 16, 2020 at 02:09:53PM +0100, Kieran Bingham wrote:
> Hi Laurent,
> 
> On 16/09/2020 14:06, Laurent Pinchart wrote:
> > Allow disabling compilation of the Android HAL adaptation layer
> > automatically when a dependency is missing by turning the android option
> > into a feature. The default value is set to 'disabled' to match the
> > current behaviour.
> 
> Thanks, this was something that was on my radar too.

It was that, or updating my build scripts to selectively enable/disable
the Android HAL based on the target. I think this is better :-)

> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> > ---
> >  meson_options.txt         |  4 ++--
> >  src/android/meson.build   | 19 ++++++++++++++-----
> >  src/libcamera/meson.build |  2 +-
> >  src/meson.build           |  4 +---
> >  4 files changed, 18 insertions(+), 11 deletions(-)
> > 
> > diff --git a/meson_options.txt b/meson_options.txt
> > index e9e815fde366..d2e07ef1450f 100644
> > --- a/meson_options.txt
> > +++ b/meson_options.txt
> > @@ -1,8 +1,8 @@
> >  # SPDX-License-Identifier: CC0-1.0
> >  
> >  option('android',
> > -        type : 'boolean',
> > -        value : false,
> > +        type : 'feature',
> > +        value : 'disabled',
> >          description : 'Compile libcamera with Android Camera3 HAL interface')
> >  
> >  option('documentation',
> > diff --git a/src/android/meson.build b/src/android/meson.build
> > index ecb92f6e9b3a..0293c2036561 100644
> > --- a/src/android/meson.build
> > +++ b/src/android/meson.build
> > @@ -1,5 +1,19 @@
> >  # SPDX-License-Identifier: CC0-1.0
> >  
> > +android_deps = [
> > +    dependency('libexif', required : get_option('android')),
> > +    dependency('libjpeg', required : get_option('android')),
> > +]
> > +
> > +android_enabled = true
> > +
> > +foreach dep : android_deps
> > +    if not dep.found()
> > +        android_enabled = false
> > +        subdir_done()
> > +    endif
> > +endforeach
> > +
> >  android_hal_sources = files([
> >      'camera3_hal.cpp',
> >      'camera_hal_manager.cpp',
> > @@ -14,11 +28,6 @@ android_camera_metadata_sources = files([
> >      'metadata/camera_metadata.c',
> >  ])
> >  
> > -android_deps = [
> > -    dependency('libexif'),
> > -    dependency('libjpeg'),
> > -]
> > -
> >  android_camera_metadata = static_library('camera_metadata',
> >                                           android_camera_metadata_sources,
> >                                           include_directories : android_includes)
> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> > index af2f3d950be6..0e6ecf5060a4 100644
> > --- a/src/libcamera/meson.build
> > +++ b/src/libcamera/meson.build
> > @@ -121,7 +121,7 @@ libcamera_deps = [
> >  
> >  libcamera_link_with = []
> >  
> > -if get_option('android')
> > +if android_enabled
> >      libcamera_sources += android_hal_sources
> >      includes += android_includes
> >      libcamera_link_with += android_camera_metadata
> > diff --git a/src/meson.build b/src/meson.build
> > index d69b4c1ea978..0c5b64d68c15 100644
> > --- a/src/meson.build
> > +++ b/src/meson.build
> > @@ -1,8 +1,6 @@
> >  # SPDX-License-Identifier: CC0-1.0
> >  
> > -if get_option('android')
> > -    subdir('android')
> > -endif
> > +subdir('android')
> >  
> >  openssl = find_program('openssl', required : true)
> >  if openssl.found()
> > 
> 
> -- 
> Regards
> --
> Kieran

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list