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

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Sep 16 15:13:46 CEST 2020


On 16/09/2020 14:11, Laurent Pinchart wrote:
> 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 :-)

Well ...
You could have installed libjpeg and libexif on the target hehe ;-)

Now we just need to do the same with the RPi IPA and that boost dependency!

--
Kieran


>>> 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
--
Kieran


More information about the libcamera-devel mailing list