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

Niklas Söderlund niklas.soderlund at ragnatech.se
Wed Sep 16 16:57:47 CEST 2020


Hi Laurent,

Thanks for your work.

On 2020-09-16 16:06:12 +0300, 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.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> ---
>  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,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list