mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	The client examples are useful to try out protocols, however they don't need to live in the wlroots repository. Having both clients and compositors in the same place is confusing. The wlroots API changes often but protocols are set in stone.
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
cairo = dependency('cairo', required: false, disabler: true)
 | 
						|
# Only needed for drm_fourcc.h
 | 
						|
libdrm_header = dependency('libdrm').partial_dependency(compile_args: true, includes: true)
 | 
						|
wayland_client = dependency('wayland-client', required: false, disabler: true)
 | 
						|
wayland_egl = dependency('wayland-egl', required: false, disabler: true)
 | 
						|
egl = dependency('egl', version: '>= 1.5', required: false, disabler: true)
 | 
						|
glesv2 = dependency('glesv2', required: false, disabler: true)
 | 
						|
 | 
						|
compositors = {
 | 
						|
	'simple': {
 | 
						|
		'src': 'simple.c',
 | 
						|
	},
 | 
						|
	'pointer': {
 | 
						|
		'src': 'pointer.c',
 | 
						|
	},
 | 
						|
	'touch': {
 | 
						|
		'src': ['touch.c', 'cat.c'],
 | 
						|
	},
 | 
						|
	'tablet': {
 | 
						|
		'src': 'tablet.c',
 | 
						|
	},
 | 
						|
	'rotation': {
 | 
						|
		'src': ['rotation.c', 'cat.c'],
 | 
						|
	},
 | 
						|
	'output-layout': {
 | 
						|
		'src': ['output-layout.c', 'cat.c'],
 | 
						|
	},
 | 
						|
	'fullscreen-shell': {
 | 
						|
		'src': 'fullscreen-shell.c',
 | 
						|
		'proto': ['fullscreen-shell-unstable-v1'],
 | 
						|
	},
 | 
						|
	'scene-graph': {
 | 
						|
		'src': 'scene-graph.c',
 | 
						|
		'proto': ['xdg-shell'],
 | 
						|
	},
 | 
						|
	'output-layers': {
 | 
						|
		'src': 'output-layers.c',
 | 
						|
		'proto': [
 | 
						|
			'xdg-shell',
 | 
						|
		],
 | 
						|
	},
 | 
						|
	'cairo-buffer': {
 | 
						|
		'src': 'cairo-buffer.c',
 | 
						|
		'dep': cairo,
 | 
						|
	},
 | 
						|
	'embedded': {
 | 
						|
		'src': [
 | 
						|
			'embedded.c',
 | 
						|
			protocols_code['xdg-shell'],
 | 
						|
			protocols_client_header['xdg-shell'],
 | 
						|
		],
 | 
						|
		'dep': [wayland_client, wayland_egl, egl, glesv2],
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
foreach name, info : compositors
 | 
						|
	extra_src = []
 | 
						|
	foreach p : info.get('proto', [])
 | 
						|
		extra_src += protocols_server_header[p]
 | 
						|
	endforeach
 | 
						|
 | 
						|
	executable(
 | 
						|
		name,
 | 
						|
		[info.get('src'), extra_src],
 | 
						|
		dependencies: [wlroots, libdrm_header, info.get('dep', [])],
 | 
						|
		build_by_default: get_option('examples'),
 | 
						|
	)
 | 
						|
endforeach
 |