You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							242 lines
						
					
					
						
							6.5 KiB
						
					
					
				
			
		
		
	
	
							242 lines
						
					
					
						
							6.5 KiB
						
					
					
				deps_libweston = [
 | 
						|
	dep_wayland_server,
 | 
						|
	dep_pixman,
 | 
						|
	dep_libm,
 | 
						|
	dep_libdl,
 | 
						|
	dep_libdrm_headers,
 | 
						|
	dep_xkbcommon,
 | 
						|
	dep_matrix_c
 | 
						|
]
 | 
						|
srcs_libweston = [
 | 
						|
	git_version_h,
 | 
						|
	'animation.c',
 | 
						|
	'bindings.c',
 | 
						|
	'clipboard.c',
 | 
						|
	'compositor.c',
 | 
						|
	'content-protection.c',
 | 
						|
	'data-device.c',
 | 
						|
	'input.c',
 | 
						|
	'linux-dmabuf.c',
 | 
						|
	'linux-explicit-synchronization.c',
 | 
						|
	'linux-sync-file.c',
 | 
						|
	'log.c',
 | 
						|
	'noop-renderer.c',
 | 
						|
	'pixel-formats.c',
 | 
						|
	'pixman-renderer.c',
 | 
						|
	'plugin-registry.c',
 | 
						|
	'screenshooter.c',
 | 
						|
	'timeline.c',
 | 
						|
	'touch-calibration.c',
 | 
						|
	'weston-log-wayland.c',
 | 
						|
	'weston-log-file.c',
 | 
						|
	'weston-log-flight-rec.c',
 | 
						|
	'weston-log.c',
 | 
						|
	'weston-direct-display.c',
 | 
						|
	'zoom.c',
 | 
						|
	linux_dmabuf_unstable_v1_protocol_c,
 | 
						|
	linux_dmabuf_unstable_v1_server_protocol_h,
 | 
						|
	linux_explicit_synchronization_unstable_v1_protocol_c,
 | 
						|
	linux_explicit_synchronization_unstable_v1_server_protocol_h,
 | 
						|
	input_method_unstable_v1_protocol_c,
 | 
						|
	input_method_unstable_v1_server_protocol_h,
 | 
						|
	input_timestamps_unstable_v1_protocol_c,
 | 
						|
	input_timestamps_unstable_v1_server_protocol_h,
 | 
						|
	presentation_time_protocol_c,
 | 
						|
	presentation_time_server_protocol_h,
 | 
						|
	pointer_constraints_unstable_v1_protocol_c,
 | 
						|
	pointer_constraints_unstable_v1_server_protocol_h,
 | 
						|
	relative_pointer_unstable_v1_protocol_c,
 | 
						|
	relative_pointer_unstable_v1_server_protocol_h,
 | 
						|
	weston_screenshooter_protocol_c,
 | 
						|
	weston_screenshooter_server_protocol_h,
 | 
						|
	text_cursor_position_protocol_c,
 | 
						|
	text_cursor_position_server_protocol_h,
 | 
						|
	text_input_unstable_v1_protocol_c,
 | 
						|
	text_input_unstable_v1_server_protocol_h,
 | 
						|
	weston_touch_calibration_protocol_c,
 | 
						|
	weston_touch_calibration_server_protocol_h,
 | 
						|
	weston_content_protection_protocol_c,
 | 
						|
	weston_content_protection_server_protocol_h,
 | 
						|
	viewporter_protocol_c,
 | 
						|
	viewporter_server_protocol_h,
 | 
						|
	xdg_output_unstable_v1_protocol_c,
 | 
						|
	xdg_output_unstable_v1_server_protocol_h,
 | 
						|
	weston_debug_protocol_c,
 | 
						|
	weston_debug_server_protocol_h,
 | 
						|
	weston_direct_display_protocol_c,
 | 
						|
	weston_direct_display_server_protocol_h,
 | 
						|
]
 | 
						|
 | 
						|
if get_option('renderer-gl')
 | 
						|
	dep_egl = dependency('egl', required: false)
 | 
						|
	if not dep_egl.found()
 | 
						|
		error('libweston + gl-renderer requires egl which was not found. Or, you can use \'-Drenderer-gl=false\'.')
 | 
						|
	endif
 | 
						|
	deps_libweston += dep_egl
 | 
						|
endif
 | 
						|
 | 
						|
lib_weston = shared_library(
 | 
						|
	'weston-@0@'.format(libweston_major),
 | 
						|
	srcs_libweston,
 | 
						|
	include_directories: common_inc,
 | 
						|
	install: true,
 | 
						|
	version: '0.0.@0@'.format(libweston_revision),
 | 
						|
	link_whole: lib_libshared,
 | 
						|
	dependencies: deps_libweston
 | 
						|
)
 | 
						|
 | 
						|
deps_for_libweston_users = [
 | 
						|
	dep_wayland_server,
 | 
						|
	dep_pixman,
 | 
						|
	dep_xkbcommon,
 | 
						|
]
 | 
						|
 | 
						|
# For external users, like Weston.
 | 
						|
dep_libweston_public = declare_dependency(
 | 
						|
	link_with: lib_weston,
 | 
						|
	include_directories: public_inc,
 | 
						|
	dependencies: deps_for_libweston_users
 | 
						|
)
 | 
						|
 | 
						|
# For internal users, like the backends.
 | 
						|
dep_libweston_private = declare_dependency(
 | 
						|
	link_with: lib_weston,
 | 
						|
	include_directories: [ include_directories('.'), public_inc ],
 | 
						|
	dependencies: deps_for_libweston_users
 | 
						|
)
 | 
						|
 | 
						|
# XXX: We should be able to use dep_libweston_private.partial_dependency() instead
 | 
						|
# of this, but a Meson bug makes it not work. It will be fixed with
 | 
						|
# https://github.com/mesonbuild/meson/pull/5167
 | 
						|
# in hopefully Meson 0.51.
 | 
						|
dep_libweston_private_h_deps = []
 | 
						|
foreach d : deps_for_libweston_users
 | 
						|
	dep_libweston_private_h_deps += d.partial_dependency(compile_args: true)
 | 
						|
endforeach
 | 
						|
dep_libweston_private_h = declare_dependency(
 | 
						|
	include_directories: [ include_directories('.'), public_inc ],
 | 
						|
	dependencies: dep_libweston_private_h_deps
 | 
						|
)
 | 
						|
 | 
						|
pkgconfig.generate(
 | 
						|
	lib_weston,
 | 
						|
	filebase: 'libweston-@0@'.format(libweston_major),
 | 
						|
	name: 'libweston API',
 | 
						|
	version: version_weston,
 | 
						|
	description: 'Header files for libweston compositors development',
 | 
						|
	requires_private: deps_for_libweston_users,
 | 
						|
	subdirs: dir_include_libweston
 | 
						|
)
 | 
						|
 | 
						|
pkgconfig.generate(
 | 
						|
	filebase: 'libweston-@0@-protocols'.format(libweston_major),
 | 
						|
	name: 'libWeston Protocols',
 | 
						|
	version: version_weston,
 | 
						|
	description: 'libWeston protocol files',
 | 
						|
	variables: [
 | 
						|
		'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
 | 
						|
		'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', dir_protocol_libweston)
 | 
						|
	],
 | 
						|
	install_dir: dir_data_pc
 | 
						|
)
 | 
						|
 | 
						|
srcs_session_helper = [
 | 
						|
	'launcher-direct.c',
 | 
						|
	'launcher-util.c',
 | 
						|
	'launcher-weston-launch.c',
 | 
						|
]
 | 
						|
deps_session_helper = [ dep_libweston_private_h ]
 | 
						|
 | 
						|
if get_option('backend-drm')
 | 
						|
	deps_session_helper += dep_libdrm
 | 
						|
endif
 | 
						|
 | 
						|
systemd_dep = dependency('', required: false)
 | 
						|
if get_option('launcher-logind')
 | 
						|
	systemd_dep = dependency('libsystemd', version: '>= 209', required: false)
 | 
						|
	if systemd_dep.found()
 | 
						|
		config_h.set('HAVE_SYSTEMD_LOGIN_209', '1')
 | 
						|
	else
 | 
						|
		systemd_dep = dependency('libsystemd-login', version: '>= 198', required: false)
 | 
						|
		if not systemd_dep.found()
 | 
						|
			error('logind support requires libsystemd or libsystemd-login but neither was found. Or, you can use \'-Dlauncher-logind=false\'')
 | 
						|
		endif
 | 
						|
	endif
 | 
						|
 | 
						|
	dbus_dep = dependency('dbus-1', version: '>= 1.6', required: false)
 | 
						|
	if not dbus_dep.found()
 | 
						|
		error('logind support requires dbus-1 >= 1.6 which was not found. Or, you can use \'-Dlauncher-logind=false\'')
 | 
						|
	endif
 | 
						|
 | 
						|
	config_h.set('HAVE_DBUS', '1')
 | 
						|
	config_h.set('HAVE_SYSTEMD_LOGIN', '1')
 | 
						|
 | 
						|
	srcs_session_helper += [
 | 
						|
		'dbus.c',
 | 
						|
		'launcher-logind.c',
 | 
						|
	]
 | 
						|
	deps_session_helper += [
 | 
						|
		dbus_dep,
 | 
						|
		systemd_dep,
 | 
						|
	]
 | 
						|
endif
 | 
						|
 | 
						|
lib_session_helper = static_library(
 | 
						|
	'session-helper',
 | 
						|
	srcs_session_helper,
 | 
						|
	include_directories: common_inc,
 | 
						|
	dependencies: deps_session_helper,
 | 
						|
	install: false
 | 
						|
)
 | 
						|
dep_session_helper = declare_dependency(link_with: lib_session_helper)
 | 
						|
 | 
						|
 | 
						|
lib_libinput_backend = static_library(
 | 
						|
	'libinput-backend',
 | 
						|
	[
 | 
						|
		'libinput-device.c',
 | 
						|
		'libinput-seat.c'
 | 
						|
	],
 | 
						|
	dependencies: [
 | 
						|
		dep_libweston_private,
 | 
						|
		dep_libinput,
 | 
						|
		dependency('libudev', version: '>= 136')
 | 
						|
	],
 | 
						|
	include_directories: common_inc,
 | 
						|
	install: false
 | 
						|
)
 | 
						|
dep_libinput_backend = declare_dependency(
 | 
						|
	link_with: lib_libinput_backend,
 | 
						|
	include_directories: include_directories('.')
 | 
						|
)
 | 
						|
 | 
						|
dep_vertex_clipping = declare_dependency(
 | 
						|
	sources: 'vertex-clipping.c',
 | 
						|
	include_directories: include_directories('.')
 | 
						|
)
 | 
						|
 | 
						|
if get_option('weston-launch')
 | 
						|
	dep_pam = cc.find_library('pam')
 | 
						|
 | 
						|
	if not cc.has_function('pam_open_session', dependencies: dep_pam)
 | 
						|
		error('pam_open_session not found for weston-launch')
 | 
						|
	endif
 | 
						|
 | 
						|
	executable(
 | 
						|
		'weston-launch',
 | 
						|
		'weston-launch.c',
 | 
						|
		dependencies: [dep_pam, systemd_dep, dep_libdrm],
 | 
						|
		include_directories: common_inc,
 | 
						|
		install: true
 | 
						|
	)
 | 
						|
 | 
						|
	meson.add_install_script('echo', 'REMINDER: You are installing weston-launch, please make it setuid-root.')
 | 
						|
endif
 | 
						|
 | 
						|
subdir('renderer-gl')
 | 
						|
subdir('backend-drm')
 | 
						|
subdir('backend-fbdev')
 | 
						|
subdir('backend-headless')
 | 
						|
subdir('backend-rdp')
 | 
						|
subdir('backend-wayland')
 | 
						|
subdir('backend-x11')
 | 
						|
 |