summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Aïssi <dylan.aissi@collabora.com>2025-02-07 13:50:35 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2025-03-01 22:36:24 +0000
commit1ea124c7a3de5cb1289ec6416f957f7da5f0c1c1 (patch)
treea5b2fc12f4a719a5ba589b87bccf455d2b6cbc2d
parenteb550486c737305dd7e86187e9d76d95d35a9cfd (diff)
libcamera: meson: Fix libyuv detection
We already fall back to a subproject to support the libyuv package when it can not be discovered through the usual dependency() mechanism. Unfortunately libyuv may be packaged without any corresponding pkg-config support as can be seen at [0], so further extend the dependency search by using an explicit cxx.find_library() call. [0] https://packages.debian.org/bookworm/amd64/libyuv-dev/filelist Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/meson.build14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/meson.build b/src/meson.build
index 76198e95..8eb8f05b 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -29,8 +29,18 @@ 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)
+# by distributions. Where libyuv is provided by a distribution, it may not
+# always supply a pkg-config implementation, requiring cxx.find_library() to
+# search for it.
+if not get_option('force_fallback_for').contains('libyuv')
+ libyuv_dep = dependency('libyuv', required : false)
+ if not libyuv_dep.found()
+ libyuv_dep = cxx.find_library('yuv', has_headers : 'libyuv.h',
+ required : false)
+ endif
+else
+ libyuv_dep = dependency('', required : false)
+endif
if (pipelines.contains('virtual') or get_option('android').allowed()) and \
not libyuv_dep.found()