project(
'wlroots-examples',
'c',
meson_version: '>=0.48.0',
default_options: [
'c_std=c11',
'warning_level=2',
'werror=false',
],
)
cc = meson.get_compiler('c')
add_global_arguments('-DWLR_USE_UNSTABLE', language : 'c')
wlroots = dependency('wlroots')
wayland_client = dependency('wayland-client')
wayland_server = dependency('wayland-server')
glesv2 = dependency('glesv2')
xkbcommon = dependency('xkbcommon')
wlr_protos = dependency('wlroots')
rt = cc.find_library('rt')
# epoll is a separate library in FreeBSD
if host_machine.system() == 'freebsd'
libepoll = [dependency('epoll-shim')]
else
libepoll = []
endif
libpng = dependency('libpng', required: false)
# Small hack until https://github.com/mesonbuild/meson/pull/3386/ is merged
foreach dep : ['libpng']
if not get_variable(dep).found()
set_variable(dep, disabler())
endif
endforeach
examples = {
'simple': {
'src': 'simple.c',
'dep': [wlroots, wayland_server, glesv2, xkbcommon],
},
'pointer': {
'src': 'pointer.c',
'dep': [wlroots, wayland_server, xkbcommon],
},
'touch': {
'src': ['touch.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'tablet': {
'src': 'tablet.c',
'dep': [wlroots, wayland_server, xkbcommon],
},
'rotation': {
'src': ['rotation.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'multi-pointer': {
'src': 'multi-pointer.c',
'dep': [wlroots, wayland_server, glesv2, xkbcommon],
},
'output-layout': {
'src': ['output-layout.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'screencopy': {
'src': 'screencopy.c',
'dep': [libpng, wayland_client, wlr_protos, rt],
},
}
foreach name, info : examples
all_dep_found = true
foreach d : info.get('dep')
all_dep_found = all_dep_found and d.found()
endforeach
if all_dep_found
executable(
name,
info.get('src'),
dependencies: info.get('dep'),
)
else
warning('Dependencies not satisfied for ' + name)
endif
endforeach