meson: Add options to control drm, sdl2, jpeg dependencies of cam

Previously it was not possible to control these dependencies, they were
always used if found. Furthermore, libjpeg was unnecessarily added as a
dependency even if sdl2 was not found. Fix that by introducing three
options to control the dependencies.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Barnabás Pőcze
2026-01-30 11:59:30 +01:00
parent 033bb2cce3
commit 00017b3679
2 changed files with 37 additions and 14 deletions
+22 -14
View File
@@ -17,9 +17,18 @@ cam_sources = files([
cam_cpp_args = [apps_cpp_args]
libdrm = dependency('libdrm', required : false)
libjpeg = dependency('libjpeg', required : false)
libsdl2 = dependency('SDL2', required : false)
cam_deps = [
libatomic,
libcamera_public,
libevent,
libthreads,
libyaml,
libtiff,
]
libdrm = dependency('libdrm', required : get_option('cam-output-kms'))
libsdl2 = dependency('SDL2', required : get_option('cam-output-sdl2'))
libjpeg = dependency('libjpeg', required : get_option('cam-jpeg'))
if libdrm.found()
cam_cpp_args += [ '-DHAVE_KMS' ]
@@ -27,6 +36,9 @@ if libdrm.found()
'drm.cpp',
'kms_sink.cpp'
])
cam_deps += [
libdrm,
]
endif
if libsdl2.found()
@@ -37,28 +49,24 @@ if libsdl2.found()
'sdl_texture_1plane.cpp',
'sdl_texture_yuv.cpp',
])
cam_deps += [
libsdl2,
]
if libjpeg.found()
cam_cpp_args += ['-DHAVE_LIBJPEG']
cam_sources += files([
'sdl_texture_mjpg.cpp'
])
cam_deps += [
libjpeg,
]
endif
endif
cam = executable('cam', cam_sources,
link_with : apps_lib,
dependencies : [
libatomic,
libcamera_public,
libdrm,
libevent,
libjpeg,
libsdl2,
libtiff,
libthreads,
libyaml,
],
dependencies : cam_deps,
cpp_args : cam_cpp_args,
install : true,
install_tag : 'bin')