[PATCH] meson: Don't unnecessarily fallback to libyuv wrap
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Nov 25 10:06:31 CET 2024
Quoting Laurent Pinchart (2024-11-25 00:52:28)
> 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 at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> src/android/meson.build | 3 +--
> src/meson.build | 8 +++++---
> 2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/src/android/meson.build b/src/android/meson.build
> index 6341ee8b0bfb..7b226a4b5d35 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 91bea7753a2e..76198e9535db 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()
>
> base-commit: 9a5f91c78abc8985baff89563992be3644f861b0
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list