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

Niklas Söderlund niklas.soderlund at ragnatech.se
Fri Feb 5 00:46:54 CET 2021


Hi Honda-san,

Thanks for your reply.

On 2021-02-05 08:03:19 +0900, Hirokazu Honda wrote:
> 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.

Thanks for this suggestion, I tried to run update_chroot and it update 
some components of my chroot (gcc and gdb) but not meson. Unfortunately 
I don't have the log from the first run as I restarted the chroot to 
check if that would help. Here is the output if I try in my now 
up-to-date chroot.

  (cr) ((5e00a24744cba80c...)) neg at neg-cros ~/trunk/src/scripts $ ./update_chroot 
  00:37:38 INFO    : Updating chroot
  00:37:38 INFO    : Clearing shadow utils lockfiles under /
  00:37:38 INFO    : Updating cross-compilers
  00:37:38: INFO: Determining required toolchain updates...
  00:37:39: INFO: Nothing to update!
  00:37:39 INFO    : Bootstrapping depot_tools
  00:37:57 INFO    : Rebuilding Portage cache
  00:37:59 INFO    : Updating the SDK
  
  These are the packages that would be merged, in order:
  
  Calculating dependencies... done!
  
  Total: 0 packages, Size of downloads: 0 KiB
  
  Nothing to merge; quitting.
  
  
  These are the packages that would be merged, in order:
  
  Calculating dependencies... done!
  
  Total: 0 packages, Size of downloads: 0 KiB
  
  Nothing to merge; quitting.
  
  Scanning Configuration files...
  Exiting: Nothing left to do; exiting. :)
  00:38:30 INFO    : Running 'eclean -d packages' to clean up stale binpkgs
   * Building file list for packages cleaning...
   * Your packages directory was already clean.
  00:38:31 INFO    : Elapsed time (update_chroot): 0m54s
  (cr) ((5e00a24744cba80c...)) neg at neg-cros ~/trunk/src/scripts $ meson --version
  0.54.2

Are there some other trick I can use to update meson in the chroot?

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

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list