aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build99
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