diff --git a/meson.build b/meson.build index e5163bc..a4500ff 100644 --- a/meson.build +++ b/meson.build @@ -26,6 +26,40 @@ project('libva-v4l2-request', 'c', cc = meson.get_compiler('c') +# Let user specify kernel sources for newer UAPI headers +kernel_headers_inc = include_directories() +kernel_headers_dep = dependency('', required : false) +kernel_headers = get_option('kernel_headers') +if kernel_headers != '' + kernel_headers_inc = include_directories(join_paths(kernel_headers, 'include')) + kernel_headers_dep = declare_dependency(include_directories : kernel_headers_inc) +endif + + +# has_header_symbol() does not support the 'required' keyword +# until Meson 0.50. Meanwhile Debian Buster is still at 0.49. +# This is why if statements are used here. + +# Check for new Request API macros +if not cc.has_header_symbol('linux/media.h', 'MEDIA_IOC_REQUEST_ALLOC', + include_directories : kernel_headers_inc) + error('Missing request API from Linux Kernel headers') +endif +if not cc.has_header_symbol('linux/videodev2.h', 'V4L2_CTRL_WHICH_REQUEST_VAL', + include_directories : kernel_headers_inc) + error('Missing V4L2_CTRL_WHICH_REQUEST_VAL from Linux Kernel headers') +endif + +# Check for format macros +if not cc.has_header_symbol('linux/videodev2.h', 'V4L2_PIX_FMT_MPEG2_SLICE', + include_directories : kernel_headers_inc) + error('Missing macro V4L2_PIX_FMT_MPEG2_SLICE from Linux Kernel headers') +endif +if not cc.has_header_symbol('linux/videodev2.h', 'V4L2_PIX_FMT_SUNXI_TILED_NV12', + include_directories : kernel_headers_inc) + error('Missing macro V4L2_PIX_FMT_SUNXI_TILED_NV12 from Linux Kernel headers') +endif + libva_dep = dependency('libva', version : '>= 1.1.0') libdrm_dep = dependency('libdrm', version : '>= 2.4.52') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..d30bdfc --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,6 @@ +option( + 'kernel_headers', + type : 'string', + value : '', + description: 'Path to sanitized Linux Kernel headers' +) diff --git a/src/meson.build b/src/meson.build index af117d3..5209af5 100644 --- a/src/meson.build +++ b/src/meson.build @@ -77,6 +77,7 @@ cflags = [ ] deps = [ + kernel_headers_dep, libva_dep, libdrm_dep ]