Files
external_libcamera/src/android/meson.build
Kieran Bingham e228c290c9 libcamera/base: Validate internal headers as private
Headers which must not be exposed as part of the public libcamera API
should include base/private.h.

Any interface which includes the private.h header will only be able to
build if the libcamera_private dependency is used (or the
libcamera_base_private dependency directly).

Build targets which are intended to use the private API's will use the
libcamera_private to handle the automatic definition of the inclusion
guard.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2021-06-25 16:11:11 +01:00

79 lines
2.4 KiB
Meson

# SPDX-License-Identifier: CC0-1.0
android_deps = [
dependency('libexif', required : get_option('android')),
dependency('libjpeg', required : get_option('android')),
dependency('yaml-0.1', required : get_option('android')),
libcamera_private,
]
android_enabled = true
foreach dep : android_deps
if not dep.found()
android_enabled = false
subdir_done()
endif
endforeach
libyuv_dep = dependency('libyuv', required : false)
# Fallback to a subproject if libyuv isn't found, as it's typically not
# provided by distributions.
if not libyuv_dep.found()
cmake = import('cmake')
libyuv_vars = cmake.subproject_options()
libyuv_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})
libyuv_vars.set_override_option('cpp_std', 'c++17')
libyuv_vars.append_compile_args('cpp',
'-Wno-sign-compare',
'-Wno-unused-variable',
'-Wno-unused-parameter')
libyuv_vars.append_link_args('-ljpeg')
libyuv = cmake.subproject('libyuv', options : libyuv_vars)
libyuv_dep = libyuv.dependency('yuv')
endif
android_deps += [libyuv_dep]
android_hal_sources = files([
'camera3_hal.cpp',
'camera_capabilities.cpp',
'camera_device.cpp',
'camera_hal_config.cpp',
'camera_hal_manager.cpp',
'camera_metadata.cpp',
'camera_ops.cpp',
'camera_stream.cpp',
'camera_worker.cpp',
'jpeg/encoder_libjpeg.cpp',
'jpeg/exif.cpp',
'jpeg/post_processor_jpeg.cpp',
'jpeg/thumbnailer.cpp',
'yuv/post_processor_yuv.cpp'
])
android_cpp_args = []
subdir('cros')
subdir('mm')
android_camera_metadata_sources = files([
'metadata/camera_metadata.c',
])
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,
include_directories : android_includes,
dependencies : android_deps)