summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-11-25 01:49:11 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-11-26 19:05:17 +0200
commite5f8d40bad2a7b050f4653de2d0e309f29c4c40a (patch)
tree1288ed5fa5b373127272640183d924d747540c66
parentea7f6faefe935ba09eb73963caff225f72adbbfc (diff)
meson: Don't unnecessarily fallback to libyuv wrap
Before commit eeaa7de21b8c ("libcamera: pipeline: Add test pattern for VirtualPipelineHandler") the libyuv dependency was only needed for the Android adaptation layer. As libyuv isn't packaged by most distribution, meson fell back to using a meson wrap if the Android adaptation layer was enabled and the library wasn't found. With commit eeaa7de21b8c, libyuv is also used by the virtual pipeline handler, and the meson wrap fallback handling got centralized and became unconditional, so the wrap is downloaded even if the components depending on libyuv are all disabled. This causes unnecessary downloads at setup time, which can be problematic on build systems without an internet connection. Fix this by making the wrap fallback conditional on the components that use libyuv. Fixes: eeaa7de21b8c ("libcamera: pipeline: Add test pattern for VirtualPipelineHandler") Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Harvey Yang <chenghaoyang@chromium.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/android/meson.build3
-rw-r--r--src/meson.build8
2 files changed, 6 insertions, 5 deletions
diff --git a/src/android/meson.build b/src/android/meson.build
index 6341ee8b..7b226a4b 100644
--- a/src/android/meson.build
+++ b/src/android/meson.build
@@ -4,6 +4,7 @@ android_deps = [
dependency('libexif', required : get_option('android')),
dependency('libjpeg', required : get_option('android')),
libcamera_private,
+ libyuv_dep,
]
android_enabled = true
@@ -15,8 +16,6 @@ foreach dep : android_deps
endif
endforeach
-android_deps += [libyuv_dep]
-
android_hal_sources = files([
'camera3_hal.cpp',
'camera_capabilities.cpp',
diff --git a/src/meson.build b/src/meson.build
index 91bea775..76198e95 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -27,11 +27,13 @@ else
ipa_sign_module = false
endif
+# libyuv, used by the Android adaptation layer and the virtual pipeline handler.
+# Fallback to a subproject if libyuv isn't found, as it's typically not provided
+# by distributions.
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()
+if (pipelines.contains('virtual') or get_option('android').allowed()) and \
+ not libyuv_dep.found()
cmake = import('cmake')
libyuv_vars = cmake.subproject_options()