From 00017b367912d97691302dd273a13d67d06e9a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Fri, 30 Jan 2026 11:59:30 +0100 Subject: [PATCH] meson: Add options to control drm, sdl2, jpeg dependencies of `cam` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Milan Zamazal Reviewed-by: Laurent Pinchart --- meson_options.txt | 15 +++++++++++++++ src/apps/cam/meson.build | 36 ++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index c27e377a..8bf6c2bd 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -16,6 +16,21 @@ option('cam', value : 'auto', description : 'Compile the cam test application') +option('cam-output-kms', + type : 'feature', + value : 'auto', + description : 'Enable KMS output in the cam application') + +option('cam-output-sdl2', + type : 'feature', + value : 'auto', + description : 'Enable SDL2 output in the cam application') + +option('cam-jpeg', + type : 'feature', + value : 'auto', + description : 'Enable JPEG support in the cam application') + option('documentation', type : 'feature', value : 'auto', diff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build index cd7f120f..0fd84627 100644 --- a/src/apps/cam/meson.build +++ b/src/apps/cam/meson.build @@ -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')