[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