weston/libweston/meson.build
Daniel Stone 28caa08be6 Implement wp_single_pixel_buffer_v1 protocol
This protocol allows clients to create single-pixel RGBA buffers. Now
that we have proper support for these buffers internally within Weston,
we can expose them to clients.

This bumps the build container version, as we now depend on
wayland-protocols v1.26.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2022-07-26 10:26:55 +03:00

248 lines
6.5 KiB
Meson

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',
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,
single_pixel_buffer_v1_protocol_c,
single_pixel_buffer_v1_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,
]
subdir('desktop')
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
)
if version_weston.version_compare('>= 11.0.90')
error('Remove libweston-desktop.pc for Weston 12.x')
endif
pkgconfig.generate(
lib_weston,
filebase: 'libweston-desktop-@0@'.format(libweston_major),
name: 'libweston-desktop',
version: version_weston,
description: 'Desktop shell abstraction library for libweston compositors',
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-util.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 not systemd_dep.found()
error('logind support requires libsystemd >= 209. Or, you can use \'-Dlauncher-logind=false\'')
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('.')
)
subdir('color-lcms')
subdir('renderer-gl')
subdir('backend-drm')
subdir('backend-headless')
subdir('backend-rdp')
subdir('backend-wayland')
subdir('backend-x11')