mirror of
https://github.com/mpv-player/mpv
synced 2025-04-25 04:39:47 +00:00
666cb91cf1
added support for v4 of the dmabuf protocol. This was meant to be optional and the fallback support for the old v2 (dates back to 2017[0] well before the 1.15 wayland-protocol version we depend on) was maintained. However, v4 added several new functions and structs that of course aren't defined in old protocol versions so naturally this breaks the build on those systems. Since this is just a niche feature and not really critical to overall wayland support in mpv, just give in and add another check in the build system and #if out the newer stuff in wayland_common. v4 of linux-dmabuf depends on wayland protocols 1-24[1], so go ahead and make that our new check. Fixes #10807. [0]:a840b3634a
[1]:8a5cd28a0e
37 lines
1.6 KiB
Meson
37 lines
1.6 KiB
Meson
wl_protocol_dir = wayland['deps'][2].get_variable(pkgconfig: 'pkgdatadir', internal: 'pkgdatadir')
|
|
protocols = [[wl_protocol_dir, 'stable/presentation-time/presentation-time.xml'],
|
|
[wl_protocol_dir, 'stable/viewporter/viewporter.xml'],
|
|
[wl_protocol_dir, 'stable/xdg-shell/xdg-shell.xml'],
|
|
[wl_protocol_dir, 'unstable/idle-inhibit/idle-inhibit-unstable-v1.xml'],
|
|
[wl_protocol_dir, 'unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml'],
|
|
[wl_protocol_dir, 'unstable/xdg-decoration/xdg-decoration-unstable-v1.xml']]
|
|
wl_protocols_source = []
|
|
wl_protocols_headers = []
|
|
|
|
features += {'wayland_protocols_1_24': wayland['deps'][2].version().version_compare('>=1.24')}
|
|
|
|
foreach p: protocols
|
|
xml = join_paths(p)
|
|
wl_protocols_source += custom_target(xml.underscorify() + '_c',
|
|
input: xml,
|
|
output: '@BASENAME@.c',
|
|
command: [wayland['scanner'], 'private-code', '@INPUT@', '@OUTPUT@'],
|
|
)
|
|
wl_protocols_headers += custom_target(xml.underscorify() + '_h',
|
|
input: xml,
|
|
output: '@BASENAME@.h',
|
|
command: [wayland['scanner'], 'client-header', '@INPUT@', '@OUTPUT@'],
|
|
)
|
|
endforeach
|
|
|
|
lib_client_protocols = static_library('protocols',
|
|
wl_protocols_source + wl_protocols_headers,
|
|
dependencies: wayland['deps'][0])
|
|
|
|
client_protocols = declare_dependency(link_with: lib_client_protocols,
|
|
sources: wl_protocols_headers)
|
|
|
|
dependencies += [client_protocols, wayland['deps']]
|
|
|
|
sources += ['video/out/wayland_common.c']
|