From 9109bcf22c7f5f48afcf4234a4d4a596d6bd7bd2 Mon Sep 17 00:00:00 2001 From: Hirokazu Honda Date: Thu, 4 Feb 2021 01:27:30 +0000 Subject: subprojects: Add libyuv and built if -Dandroid=enabled Android HAL adaptation layer may need image processing, for example, scaling and format conversion. Libyuv is a general image processing. This adds libyuv to subprojects, so that it is forked locally and can be used with Android HAL implementation code. Signed-off-by: Hirokazu Honda Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart --- README.rst | 2 +- meson.build | 2 +- src/android/meson.build | 17 +++++++++++++++++ subprojects/.gitignore | 1 + subprojects/libyuv.wrap | 4 ++++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 subprojects/.gitignore create mode 100644 subprojects/libyuv.wrap diff --git a/README.rst b/README.rst index 251291b7..08bfd5ad 100644 --- a/README.rst +++ b/README.rst @@ -47,7 +47,7 @@ A C++ toolchain: [required] Either {g++, clang} Meson Build system: [required] - meson (>= 0.51) ninja-build pkg-config + meson (>= 0.55) ninja-build pkg-config If your distribution doesn't provide a recent enough version of meson, you can install or upgrade it using pip3. diff --git a/meson.build b/meson.build index 743cb1d2..be77191d 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: CC0-1.0 project('libcamera', 'c', 'cpp', - meson_version : '>= 0.53', + meson_version : '>= 0.55', version : '0.0.0', default_options : [ 'werror=true', diff --git a/src/android/meson.build b/src/android/meson.build index 3d4d3be4..7619517a 100644 --- a/src/android/meson.build +++ b/src/android/meson.build @@ -14,6 +14,23 @@ foreach dep : android_deps endif endforeach +if android_enabled + 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') + + android_deps += [ libyuv_dep, ] +endif + android_hal_sources = files([ 'camera3_hal.cpp', 'camera_hal_manager.cpp', diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 00000000..410b8bd6 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1 @@ +/libyuv \ No newline at end of file diff --git a/subprojects/libyuv.wrap b/subprojects/libyuv.wrap new file mode 100644 index 00000000..8ba51fa0 --- /dev/null +++ b/subprojects/libyuv.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory = libyuv +url = https://chromium.googlesource.com/libyuv/libyuv.git +revision = 93b1b332cd60b56ab90aea14182755e379c28a80 -- cgit v1.2.1