meson: allow building libcamera from source as a subproject

Many distributions provide outdated libcamera versions. This change should also help making changes to libcamera itself.

System libcamera is kept a default to avoid breaking existing build processes relying to packaged libcamera.
This commit is contained in:
Dmitry Sharshakov 2022-11-09 08:41:38 +03:00 committed by Wim Taymans
parent 6d712d17e7
commit 3d971b4024
4 changed files with 16 additions and 1 deletions

5
.gitignore vendored
View File

@ -15,6 +15,11 @@ subprojects/lua*
subprojects/wireplumber
subprojects/media-session
subprojects/packagecache
subprojects/googletest*
subprojects/gtest.wrap
subprojects/libyaml.wrap
subprojects/libyaml
subprojects/libcamera
# Created by https://www.gitignore.io/api/vim

View File

@ -168,6 +168,8 @@ option('libcamera',
description: 'Enable libcamera spa plugin integration',
type: 'feature',
value: 'auto')
option('system-libcamera', type : 'boolean', value : 'true',
description : 'Use libcamera from the system instead of building from source')
option('videoconvert',
description: 'Enable videoconvert spa plugin integration',
type: 'feature',

View File

@ -89,7 +89,12 @@ if get_option('spa-plugins').allowed()
vulkan_headers = cc.has_header('vulkan/vulkan.h', dependencies : vulkan_dep)
#summary({'Vulkan': vulkan_headers}, bool_yn: true, section: 'Misc dependencies')
libcamera_dep = dependency('libcamera', required: get_option('libcamera'))
if get_option('system-libcamera')
libcamera_dep = dependency('libcamera', required: get_option('libcamera'))
else
libcamera_proj = subproject('libcamera')
libcamera_dep = libcamera_proj.get_variable('libcamera_public')
endif
summary({'libcamera': libcamera_dep.found()}, bool_yn: true, section: 'Backend')
tinycompress_dep = cc.find_library('tinycompress', has_headers: ['tinycompress/tinycompress.h' ], required: get_option('compress-offload'))

View File

@ -0,0 +1,3 @@
[wrap-git]
url = https://git.libcamera.org/libcamera/libcamera.git
revision = head