[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