[libcamera-devel] [PATCH v4 1/2] subprojects: Add libyuv and built if -Dandroid=enabled

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Feb 4 15:03:00 CET 2021


Hi Honda-san,

Thanks for your work.

On 2021-02-04 01:27:30 +0000, Hirokazu Honda wrote:
> 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 <hiroh at chromium.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  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',

I know this patch is already merged, but bumping meson version over 
v0.54.3 breaks my CrOS build environment for Soraka based on R89 (and 
I'm told R90 also ships with meson v0.54.3). I understand the need to 
move to meson v0.55, I'm just curious if you know of a build environment 
I can switch to.

>      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
> --
> 2.30.0.365.g02bc693789-goog
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list