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

Hirokazu Honda hiroh at chromium.org
Fri Feb 5 00:03:19 CET 2021


Hi Niklas,

On Thu, Feb 4, 2021 at 11:03 PM Niklas Söderlund
<niklas.soderlund at ragnatech.se> wrote:
>
> 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.
>

I faced the same issue.
The meson command in ChromeOS chroot is the same as
portage-stable/dev-util/meson. [1]
It is 0.55.3. It thus shouldn't matter.
The meson command is not upreved unless `./update_chroot` doesn't run.
The command is hooked to run by some command (e.g. setup_board).
Of course, you can run manually  `./update_chroot`.
Hope it is helpful for you.

[1] https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/portage-stable/dev-util/meson/

Thanks,
-Hiro

> >      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