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

Hirokazu Honda hiroh at chromium.org
Wed Jan 20 05:34:25 CET 2021


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 folked
locally and can be used with Android HAL implementation code.

---
 meson.build             |  2 +-
 src/android/meson.build | 14 ++++++++++++++
 subprojects/.gitignore  |  1 +
 subprojects/libyuv.wrap |  7 +++++++
 4 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 subprojects/.gitignore
 create mode 100644 subprojects/libyuv.wrap

diff --git a/meson.build b/meson.build
index c47eb420..d9b63278 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: CC0-1.0

 project('libcamera', 'c', 'cpp',
-    meson_version : '>= 0.51',
+    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..0b55ff63 100644
--- a/src/android/meson.build
+++ b/src/android/meson.build
@@ -5,6 +5,20 @@ android_deps = [
     dependency('libjpeg', required : get_option('android')),
 ]

+if get_option('android').enabled()
+   cmake = import('cmake')
+   libyuv_vars = cmake.subproject_options()
+   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_shared')
+   android_deps += [ libyuv_dep, ]
+endif
+
 android_enabled = true

 foreach dep : android_deps
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..4262bf05
--- /dev/null
+++ b/subprojects/libyuv.wrap
@@ -0,0 +1,7 @@
+[wrap-git]
+directory = libyuv
+url = https://chromium.googlesource.com/libyuv/libyuv.git
+revision = 1d3f901aa016d42b5bc0148be2ef6c0fd56f3b81
+
+[provide]
+libyuv = libyuv_dep
--
2.30.0.296.g2bfb1c46d8-goog


More information about the libcamera-devel mailing list