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')