diff options
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..e5802dc --- /dev/null +++ b/meson.build @@ -0,0 +1,99 @@ +project('wayland-protocols', + version: '1.20', + meson_version: '>= 0.53.0', + license: 'MIT/Expat', +) + +wayland_protocols_version = meson.project_version() + +fs = import('fs') + +dep_scanner = dependency('wayland-scanner', native: true) + +stable_protocols = [ + 'presentation-time', + 'viewporter', + 'xdg-shell', +] + +unstable_protocols = { + 'fullscreen-shell': ['v1'], + 'idle-inhibit': ['v1'], + 'input-method': ['v1'], + 'input-timestamps': ['v1'], + 'keyboard-shortcuts-inhibit': ['v1'], + 'linux-dmabuf': ['v1'], + 'linux-explicit-synchronization': ['v1'], + 'pointer-constraints': ['v1'], + 'pointer-gestures': ['v1'], + 'primary-selection': ['v1'], + 'relative-pointer': ['v1'], + 'tablet': ['v1', 'v2'], + 'text-input': ['v1', 'v3'], + 'xdg-decoration': ['v1'], + 'xdg-foreign': ['v1', 'v2'], + 'xdg-output': ['v1'], + 'xdg-shell': ['v5', 'v6'], + 'xwayland-keyboard-grab': ['v1'], +} + +protocol_files = [] + +foreach name : stable_protocols + protocol_files += ['stable/@0@/@0@.xml'.format(name)] +endforeach + +foreach name : unstable_protocols.keys() + foreach version : unstable_protocols.get(name) + protocol_files += [ + 'unstable/@0@/@0@-unstable-@1@.xml'.format(name, version) + ] + endforeach +endforeach + +# Check that each protocol has a README +foreach protocol_file : protocol_files + dir = fs.parent(protocol_file) + if not fs.is_file(dir + '/README') + error('Missing README in @0@'.format(protocol_file)) + endif +endforeach + +foreach protocol_file : protocol_files + protocol_install_dir = fs.parent(join_paths( + get_option('datadir'), + 'wayland-protocols', + protocol_file, + )) + install_data( + protocol_file, + install_dir: protocol_install_dir, + ) +endforeach + +wayland_protocols_srcdir = meson.current_source_dir() + +pkgconfig_configuration = configuration_data() +pkgconfig_configuration.set('prefix', get_option('prefix')) +pkgconfig_configuration.set('datadir', get_option('datadir')) +pkgconfig_configuration.set('abs_top_srcdir', wayland_protocols_srcdir) +pkgconfig_configuration.set('PACKAGE', 'wayland-protocols') +pkgconfig_configuration.set('WAYLAND_PROTOCOLS_VERSION', wayland_protocols_version) + +pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig') +configure_file( + input: 'wayland-protocols.pc.in', + output: 'wayland-protocols.pc', + configuration: pkgconfig_configuration, + install_dir: pkg_install_dir, +) + +configure_file( + input: 'wayland-protocols-uninstalled.pc.in', + output: 'wayland-protocols-uninstalled.pc', + configuration: pkgconfig_configuration, +) + +if get_option('tests') + subdir('tests') +endif |