meson: Build waylandsink

https://bugzilla.gnome.org/show_bug.cgi?id=774493
This commit is contained in:
Thibault Saunier 2016-11-15 17:46:17 -03:00
parent dfd86de67a
commit c38d3a41e2
5 changed files with 71 additions and 5 deletions

View file

@ -67,7 +67,7 @@ subdir('ttml')
subdir('voaacenc') subdir('voaacenc')
#subdir('voamrwbenc') #subdir('voamrwbenc')
subdir('vulkan') subdir('vulkan')
#subdir('wayland') subdir('wayland')
#subdir('webrtcdsp') #subdir('webrtcdsp')
subdir('webp') subdir('webp')
subdir('x265') subdir('x265')

44
ext/wayland/meson.build Normal file
View file

@ -0,0 +1,44 @@
wl_sources = [
'gstwaylandsink.c',
'wlshmallocator.c',
'wlbuffer.c',
'wldisplay.c',
'wlwindow.c',
'wlvideoformat.c',
'wllinuxdmabuf.c'
]
if use_wayland
protocols_datadir = wl_protocol_dep.get_pkgconfig_variable('pkgdatadir')
protocol_defs = [
['/stable/viewporter/viewporter.xml', 'viewporter-protocol.c', 'viewporter-client-protocol.h'],
['/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml',
'linux-dmabuf-unstable-v1-protocol.c', 'linux-dmabuf-unstable-v1-client-protocol.h']
]
protocols_files = []
foreach protodef: protocol_defs
xmlfile = protocols_datadir + protodef.get(0)
protocols_files += [custom_target(protodef.get(1),
output : protodef.get(1),
input : xmlfile,
command : [wl_scanner, 'code', '@INPUT@', '@OUTPUT@'])]
protocols_files += [custom_target(protodef.get(2),
output : protodef.get(2),
input : xmlfile,
command : [wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'])]
endforeach
gstwaylandsink = library('gstwaylandsink',
wl_sources + protocols_files,
c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
include_directories : [configinc],
dependencies : [gst_dep, gstvideo_dep, gstwayland_dep, gstallocators_dep,
wl_client_dep, wl_protocol_dep, libdrm_dep],
install : true,
install_dir : plugins_install_dir,
)
endif

View file

@ -10,8 +10,7 @@ subdir('interfaces')
subdir('mpegts') subdir('mpegts')
subdir('player') subdir('player')
subdir('video') subdir('video')
if use_wayland
# FIXME: port configure.ac logic subdir('wayland')
#subdir('wayland') endif
subdir('gl') subdir('gl')

View file

@ -0,0 +1,13 @@
gstwayland = library('gstwayland-' + api_version,
'wayland.c',
c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
include_directories : [configinc, libsinc],
version : libversion,
soversion : soversion,
install : true,
dependencies : [gst_dep, gstvideo_dep]
)
gstwayland_dep = declare_dependency(link_with : gstwayland,
include_directories : [libsinc],
dependencies : [gst_dep, gstvideo_dep])

View file

@ -331,6 +331,16 @@ else
cdata.set('DISABLE_ORC', 1) cdata.set('DISABLE_ORC', 1)
endif endif
# Wayland checks
wl_req = '>= 1.4'
wl_client_dep = dependency('wayland-client', version: wl_req, required: false)
libdrm_dep = dependency('libdrm', version: '>= 2.4.55', required: false)
wl_protocol_dep = dependency('wayland-protocols', version: wl_req,
required: false)
wl_scanner = find_program('wayland-scanner')
use_wayland = wl_protocol_dep.found() and wl_client_dep.found() and wl_scanner.found() and libdrm_dep.found()
configure_file(input : 'config.h.meson', configure_file(input : 'config.h.meson',
output : 'config.h', output : 'config.h',
configuration : cdata) configuration : cdata)