mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-15 10:45:20 +00:00
54 lines
1.7 KiB
Meson
54 lines
1.7 KiB
Meson
uvcgadget_sources = [
|
|
'gstuvcsink.c',
|
|
'configfs.c',
|
|
'uvc.c'
|
|
]
|
|
|
|
uvcgadget_headers = [
|
|
'configfs.h',
|
|
'gstuvcsink.h',
|
|
]
|
|
|
|
doc_sources = []
|
|
foreach s: uvcgadget_sources + uvcgadget_headers
|
|
doc_sources += meson.current_source_dir() / s
|
|
endforeach
|
|
|
|
plugin_sources += {
|
|
'uvcgadget': pathsep.join(doc_sources)
|
|
}
|
|
|
|
libgudev_dep = dependency('gudev-1.0', required: get_option('uvcgadget'))
|
|
|
|
if get_option('uvcgadget').disabled()
|
|
have_v4l2 = false
|
|
message('UVCSink plugin is disabled')
|
|
else
|
|
# Should only be built on Linux, check for Linux kernel headers even though
|
|
# we have our own copy.
|
|
have_v4l2 = cc.has_header('linux/videodev2.h') or cc.has_header('sys/videodev2.h') or cc.has_header('sys/videoio.h')
|
|
if get_option('uvcgadget').enabled() and not have_v4l2
|
|
error('UVCGADGET is requested but kernel headers were not found')
|
|
endif
|
|
|
|
# Find makedev in various header files. Different operating systems put the
|
|
# macro in different header files.
|
|
foreach name: ['mkdev', 'sysmacros', 'types']
|
|
have_makedev = cc.has_header_symbol('sys/@0@.h'.format(name), 'makedev')
|
|
cdata.set10('HAVE_MAKEDEV_IN_' + name.to_upper(), have_makedev)
|
|
endforeach
|
|
endif
|
|
|
|
if have_v4l2 and libgudev_dep.found()
|
|
gstuvcgadget = library('gstuvcgadget',
|
|
uvcgadget_sources,
|
|
c_args : gst_plugins_bad_args,
|
|
cpp_args: gst_plugins_bad_args,
|
|
include_directories : [configinc, include_directories('../v4l2codecs')],
|
|
dependencies : [gstbase_dep, gstvideo_dep, gstallocators_dep, libgudev_dep, gstpbutils_dep,],
|
|
install : true,
|
|
install_dir : plugins_install_dir,
|
|
)
|
|
pkgconfig.generate(gstuvcgadget, install_dir : plugins_pkgconfig_install_dir)
|
|
plugins += [gstuvcgadget]
|
|
endif
|