[libcamera-devel] [PATCH v2] android: Split HAL to it's own shared library
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Jun 16 13:35:50 CEST 2021
Hi Umang,
On 16/06/2021 12:01, Umang Jain wrote:
> Hi Kieran,
>
> On 6/14/21 5:35 PM, Kieran Bingham wrote:
>> The libcamera Android HAL implementation should not be an integral part
>> of libcamera, but a support library that utilises the libcamera public
>> API.
>>
>> Move the implementation to it's own distinct library.
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
>
> There will be ebuild changes for this right? Can you post where they are
> tracked?
Ah yes, I meant to do that already:
https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2960848
--
Kieran
>
>> ---
>> src/android/meson.build | 12 +++++++++++-
>> src/libcamera/meson.build | 11 -----------
>> src/meson.build | 7 +++----
>> 3 files changed, 14 insertions(+), 16 deletions(-)
>>
>> diff --git a/src/android/meson.build b/src/android/meson.build
>> index 3893e5b5b832..6edaa1185905 100644
>> --- a/src/android/meson.build
>> +++ b/src/android/meson.build
>> @@ -4,6 +4,7 @@ android_deps = [
>> dependency('libexif', required : get_option('android')),
>> dependency('libjpeg', required : get_option('android')),
>> dependency('yaml-0.1', required : get_option('android')),
>> + libcamera_dep,
>> ]
>> android_enabled = true
>> @@ -37,7 +38,7 @@ endif
>> android_deps += [libyuv_dep]
>> if get_option('android_platform') == 'cros'
>> - libcamera_cpp_args += [ '-DOS_CHROMEOS']
>> + libcamera_cpp_args += ['-DOS_CHROMEOS']
>> endif
>> subdir('cros')
>> @@ -68,3 +69,12 @@ android_camera_metadata =
>> static_library('camera_metadata',
>>
>> android_camera_metadata_sources,
>> c_args : '-Wno-shadow',
>> include_directories :
>> android_includes)
>> +
>> +libcamera_hal = shared_library('libcamera-hal',
>> + android_hal_sources,
>> + name_prefix : '',
>> + link_with : android_camera_metadata,
>> + install : true,
>> + cpp_args : libcamera_cpp_args,
>> + include_directories : android_includes,
>> + dependencies : android_deps)
>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
>> index 7e19a1774a59..54512652272c 100644
>> --- a/src/libcamera/meson.build
>> +++ b/src/libcamera/meson.build
>> @@ -130,16 +130,6 @@ libcamera_deps = [
>> dependency('threads'),
>> ]
>> -libcamera_link_with = []
>> -
>> -if android_enabled
>> - libcamera_sources += android_hal_sources
>> - includes += android_includes
>> - libcamera_link_with += android_camera_metadata
>> -
>> - libcamera_deps += android_deps
>> -endif
>> -
>> # We add '/' to the build_rpath as a 'safe' path to act as a boolean
>> flag.
>> # The build_rpath is stripped at install time by meson, so we
>> determine at
>> # runtime if the library is running from an installed location by
>> checking
>> @@ -148,7 +138,6 @@ endif
>> libcamera = shared_library('camera',
>> libcamera_sources,
>> install : true,
>> - link_with : libcamera_link_with,
>> cpp_args : libcamera_cpp_args,
>> include_directories : includes,
>> objects : libcamera_objects,
>> diff --git a/src/meson.build b/src/meson.build
>> index edb7ce14f7a6..a6e4eb21b796 100644
>> --- a/src/meson.build
>> +++ b/src/meson.build
>> @@ -23,11 +23,10 @@ endif
>> libcamera_cpp_args = []
>> libcamera_objects = []
>> -# The 'android' subdir must be processed first, and the build targets
>> -# are included directly into the libcamera library when this is enabled.
>> -subdir('android')
>> -
>> +# libcamera must be built first as a dependency to the other components.
>> subdir('libcamera')
>> +
>> +subdir('android')
>> subdir('ipa')
>> subdir('lc-compliance')
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list