| 
									
										
										
										
											2025-02-04 07:17:44 +08:00
										 |  |  | project('plume', ['c', 'cpp'],
 | 
					
						
							|  |  |  |   version : '0.1'
 | 
					
						
							| 
									
										
										
										
											2025-02-03 23:18:47 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | subdir('protocols')
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-04 13:36:44 +08:00
										 |  |  | fs = import('fs')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if not fs.exists('config.h')
 | 
					
						
							|  |  |  |   run_command('cp', 'config.def.h', 'config.h', check: true)
 | 
					
						
							|  |  |  | endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-03 23:18:47 +08:00
										 |  |  | cc = meson.get_compiler('c')
 | 
					
						
							|  |  |  | libm = cc.find_library('m')
 | 
					
						
							|  |  |  | xcb = dependency('xcb', required : get_option('xwayland'))
 | 
					
						
							|  |  |  | xlibs = dependency('xcb-icccm', required : get_option('xwayland'))
 | 
					
						
							|  |  |  | wayland_server_dep = dependency('wayland-server')
 | 
					
						
							|  |  |  | wlroots_dep = dependency('wlroots', version : ['>=0.17.0', '<0.18.0'])
 | 
					
						
							|  |  |  | xkbcommon_dep = dependency('xkbcommon')
 | 
					
						
							|  |  |  | libinput_dep = dependency('libinput')
 | 
					
						
							|  |  |  | libwayland_client_dep = dependency('wayland-client')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | c_args = [
 | 
					
						
							|  |  |  |   '-g',
 | 
					
						
							|  |  |  |   '-Wno-unused-function',
 | 
					
						
							|  |  |  |   '-DWLR_USE_UNSTABLE',
 | 
					
						
							|  |  |  |   '-D_POSIX_C_SOURCE=200809L',
 | 
					
						
							|  |  |  |   '-DVERSION="@0@"'.format(meson.project_version())
 | 
					
						
							|  |  |  | ]
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if xcb.found() and xlibs.found()
 | 
					
						
							|  |  |  |   c_args += '-DXWAYLAND'
 | 
					
						
							|  |  |  |   c_args += '-DIM'
 | 
					
						
							|  |  |  |  endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-04 07:17:44 +08:00
										 |  |  | executable('plume',
 | 
					
						
							|  |  |  |   'main.c',
 | 
					
						
							| 
									
										
										
										
											2025-02-03 23:18:47 +08:00
										 |  |  |   'util.c',
 | 
					
						
							|  |  |  |   'wlr_foreign_toplevel_management_v1.c',
 | 
					
						
							|  |  |  |   'wlr_foreign_toplevel_management_v1.h',
 | 
					
						
							|  |  |  |   wayland_sources,
 | 
					
						
							|  |  |  |   dependencies : [
 | 
					
						
							|  |  |  |     libm,
 | 
					
						
							|  |  |  |     xcb,
 | 
					
						
							|  |  |  |     xlibs,
 | 
					
						
							|  |  |  |     wayland_server_dep,
 | 
					
						
							|  |  |  |     wlroots_dep,
 | 
					
						
							|  |  |  |     xkbcommon_dep,
 | 
					
						
							|  |  |  |     libinput_dep,
 | 
					
						
							|  |  |  |     libwayland_client_dep,
 | 
					
						
							|  |  |  |   ],
 | 
					
						
							|  |  |  |   install : true,
 | 
					
						
							|  |  |  |   c_args : c_args
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-04 07:17:44 +08:00
										 |  |  | prefix = get_option('prefix')
 | 
					
						
							|  |  |  | desktop_install_dir = join_paths(prefix, 'share/wayland-sessions')
 | 
					
						
							|  |  |  | install_data('plume.desktop', install_dir : desktop_install_dir)
 |