android: Split HAL to its own shared library
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 its own distinct library. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -15,4 +15,4 @@ cros_hal_info = static_library('cros_hal_info',
|
||||
include_directories : [android_includes,
|
||||
libcamera_includes])
|
||||
|
||||
libcamera_objects += cros_hal_info.extract_objects('camera3_hal.cpp')
|
||||
android_objects += cros_hal_info.extract_objects('camera3_hal.cpp')
|
||||
|
||||
+15
-1
@@ -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
|
||||
@@ -36,8 +37,11 @@ endif
|
||||
|
||||
android_deps += [libyuv_dep]
|
||||
|
||||
android_cpp_args = []
|
||||
android_objects = []
|
||||
|
||||
if get_option('android_platform') == 'cros'
|
||||
libcamera_cpp_args += [ '-DOS_CHROMEOS']
|
||||
android_cpp_args += ['-DOS_CHROMEOS']
|
||||
endif
|
||||
|
||||
subdir('cros')
|
||||
@@ -69,3 +73,13 @@ 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 : android_cpp_args,
|
||||
objects : android_objects,
|
||||
include_directories : android_includes,
|
||||
dependencies : android_deps)
|
||||
|
||||
@@ -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,10 +138,7 @@ 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,
|
||||
build_rpath : '/',
|
||||
dependencies : libcamera_deps)
|
||||
|
||||
|
||||
+3
-7
@@ -25,14 +25,10 @@ else
|
||||
ipa_sign_module = false
|
||||
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')
|
||||
|
||||
Reference in New Issue
Block a user