gstreamer/sys/v4l2codecs/meson.build
Ting-Wei Lan d10e2381c7 v4l2codecs: Fix compilation error on FreeBSD
This commit does the following things to fix compilation on FreeBSD:

1. Add required typedefs to linux/types-compat.h.
2. Remove unnecessary include linux/ioctl.h and replace linux/types.h
   with linux/types-compat.h. Both files do not exist on FreeBSD.
3. Check the header including makedev macro. FreeBSD does not have
   sys/sysmacros.h, and including it unconditionally causes error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1259>
2020-05-11 15:17:31 +00:00

46 lines
1.5 KiB
Meson

v4l2codecs_sources = [
'plugin.c',
'gstv4l2codecallocator.c',
'gstv4l2codecdevice.c',
'gstv4l2codech264dec.c',
'gstv4l2codecpool.c',
'gstv4l2codecvp8dec.c',
'gstv4l2decoder.c',
'gstv4l2format.c',
]
libgudev_dep = dependency('gudev-1.0', required: get_option('v4l2codecs'))
if get_option('v4l2codecs').disabled()
have_v4l2 = false
message('V4L2 CODECs 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')
if get_option('v4l2codecs').enabled() and not have_v4l2
error('V4L2i CODECs 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()
gstv4l2codecs = library('gstv4l2codecs',
v4l2codecs_sources,
c_args : gst_plugins_bad_args,
cpp_args: gst_plugins_bad_args,
include_directories : [configinc],
dependencies : [gstbase_dep, gstcodecs_dep, gstallocators_dep, libgudev_dep],
install : true,
install_dir : plugins_install_dir,
)
pkgconfig.generate(gstv4l2codecs, install_dir : plugins_pkgconfig_install_dir)
plugins += [gstv4l2codecs]
endif