deps_libweston = [ dep_wayland_server, dep_pixman, dep_libm, dep_libdl, dep_libdrm, dep_xkbcommon, dep_matrix_c ] srcs_libweston = [ git_version_h, 'animation.c', 'bindings.c', 'clipboard.c', 'color.c', 'color-noop.c', 'compositor.c', 'content-protection.c', 'data-device.c', 'drm-formats.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 if get_option('launcher-libseat') libseat_dep = dependency('libseat', version: '>= 0.4') config_h.set('HAVE_LIBSEAT', '1') srcs_session_helper += [ 'launcher-libseat.c', ] deps_session_helper += [ libseat_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('deprecated-weston-launch') warning('weston-launch is deprecated and will be removed in a future release. Please migrate to libseat and seatd-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('color-lcms') subdir('renderer-gl') subdir('backend-drm') subdir('backend-fbdev') subdir('backend-headless') subdir('backend-rdp') subdir('backend-wayland') subdir('backend-x11')