mirror of
https://gitlab.freedesktop.org/wayland/wayland-protocols.git
synced 2025-12-20 05:50:09 +01:00
Add meson build system support
Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Simon Ser <contact@emersion.fr>
This commit is contained in:
parent
f899eff0a7
commit
79b9a42514
4 changed files with 119 additions and 2 deletions
99
meson.build
Normal file
99
meson.build
Normal file
|
|
@ -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
|
||||||
4
meson_options.txt
Normal file
4
meson_options.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
option('tests',
|
||||||
|
type: 'boolean',
|
||||||
|
value: true,
|
||||||
|
description: 'Build the tests')
|
||||||
14
tests/meson.build
Normal file
14
tests/meson.build
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
prog_scan_sh = find_program('scan.sh')
|
||||||
|
prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner'))
|
||||||
|
|
||||||
|
# Check that each protocol passes through the scanner
|
||||||
|
foreach protocol_file : protocol_files
|
||||||
|
protocol_path = join_paths(wayland_protocols_srcdir, protocol_file)
|
||||||
|
test_name = 'scan-@0@'.format(protocol_file.underscorify())
|
||||||
|
test(test_name, prog_scan_sh,
|
||||||
|
args: protocol_path,
|
||||||
|
env: [
|
||||||
|
'SCANNER=@0@'.format(prog_scanner.path()),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
prefix=@prefix@
|
prefix=@prefix@
|
||||||
datarootdir=@datarootdir@
|
datarootdir=${prefix}/@datadir@
|
||||||
pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@
|
pkgdatadir=${pc_sysrootdir}${datarootdir}/@PACKAGE@
|
||||||
|
|
||||||
Name: Wayland Protocols
|
Name: Wayland Protocols
|
||||||
Description: Wayland protocol files
|
Description: Wayland protocol files
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue