[libcamera-devel] [PATCH v4 2/2] android: Try build with a local libyuv first

Hirokazu Honda hiroh at chromium.org
Thu Feb 4 02:27:31 CET 2021


There is an environment where the wrap-based download is
prohibited by "--wrap-mode nodownload". The local libyuv
library needs to be built with in such a build environment.
For the environment, this changes the meson file to first
try building a local libyuv, and if it fails, download libyuv
code and build with it as a fallback.

Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/android/meson.build | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/src/android/meson.build b/src/android/meson.build
index 7619517a..95d0f420 100644
--- a/src/android/meson.build
+++ b/src/android/meson.build
@@ -15,20 +15,26 @@ foreach dep : android_deps
 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, ]
+    libyuv_dep = dependency('libyuv', required : false)
+
+    # Fallback to a subproject if libyuv isn't found, as it's typically not
+    # provided by distributions.
+    if not libyuv_dep.found()
+        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')
+   endif
+
+   android_deps += [ libyuv_dep, ]
 endif

 android_hal_sources = files([
--
2.30.0.365.g02bc693789-goog


More information about the libcamera-devel mailing list