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.
438 lines
10 KiB
438 lines
10 KiB
deps_libweston = [
|
|
dep_wayland_server,
|
|
dep_pixman,
|
|
dep_libm,
|
|
dep_libdl,
|
|
dep_libdrm_headers,
|
|
dep_libshared,
|
|
dep_xkbcommon,
|
|
]
|
|
srcs_libweston = [
|
|
git_version_h,
|
|
'animation.c',
|
|
'bindings.c',
|
|
'clipboard.c',
|
|
'compositor.c',
|
|
'data-device.c',
|
|
'input.c',
|
|
'linux-dmabuf.c',
|
|
'log.c',
|
|
'noop-renderer.c',
|
|
'pixel-formats.c',
|
|
'pixman-renderer.c',
|
|
'plugin-registry.c',
|
|
'screenshooter.c',
|
|
'timeline.c',
|
|
'touch-calibration.c',
|
|
'weston-debug.c',
|
|
'zoom.c',
|
|
'../shared/matrix.c',
|
|
linux_dmabuf_unstable_v1_protocol_c,
|
|
linux_dmabuf_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,
|
|
viewporter_protocol_c,
|
|
viewporter_server_protocol_h,
|
|
weston_debug_protocol_c,
|
|
weston_debug_server_protocol_h,
|
|
]
|
|
|
|
install_headers(
|
|
'compositor.h',
|
|
'plugin-registry.h',
|
|
'timeline-object.h',
|
|
'windowed-output-api.h',
|
|
'../shared/config-parser.h',
|
|
'../shared/matrix.h',
|
|
'../shared/zalloc.h',
|
|
subdir: dir_include_libweston
|
|
)
|
|
|
|
lib_weston = shared_library(
|
|
'weston-@0@'.format(libweston_major),
|
|
srcs_libweston,
|
|
include_directories: include_directories('..', '../shared'),
|
|
link_args: [ '-export-dynamic' ],
|
|
install: true,
|
|
version: '0.0.@0@'.format(libweston_revision),
|
|
dependencies: deps_libweston
|
|
)
|
|
|
|
dep_libweston = declare_dependency(
|
|
link_with: lib_weston,
|
|
include_directories: include_directories('.'),
|
|
dependencies: deps_libweston
|
|
)
|
|
|
|
pkgconfig.generate(
|
|
filebase: 'libweston-@0@'.format(libweston_major),
|
|
name: 'libweston API',
|
|
version: version_weston,
|
|
description: 'Header files for libweston compositors development',
|
|
libraries: lib_weston,
|
|
requires_private: [ dep_wayland_server, dep_pixman, dep_xkbcommon ],
|
|
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 = [
|
|
# for compositor.h needing pixman.h
|
|
dep_pixman.partial_dependency(compile_args: true)
|
|
]
|
|
|
|
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')
|
|
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 += [
|
|
dependency('dbus-1', version: '>= 1.6'),
|
|
systemd_dep,
|
|
]
|
|
endif
|
|
|
|
lib_session_helper = static_library(
|
|
'session-helper',
|
|
srcs_session_helper,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_session_helper,
|
|
install: false
|
|
)
|
|
dep_session_helper = declare_dependency(link_with: lib_session_helper)
|
|
|
|
|
|
if get_option('backend-drm')
|
|
config_h.set('BUILD_DRM_COMPOSITOR', '1')
|
|
|
|
srcs_drm = [
|
|
'compositor-drm.c',
|
|
'libbacklight.c',
|
|
'libinput-device.c',
|
|
'libinput-seat.c',
|
|
linux_dmabuf_unstable_v1_protocol_c,
|
|
linux_dmabuf_unstable_v1_server_protocol_h,
|
|
presentation_time_server_protocol_h,
|
|
]
|
|
|
|
deps_drm = [
|
|
dep_libweston,
|
|
dep_session_helper,
|
|
dep_libdrm,
|
|
dep_libinput,
|
|
dependency('libudev', version: '>= 136'),
|
|
]
|
|
|
|
if get_option('renderer-gl')
|
|
dep_gbm = dependency('gbm')
|
|
if dep_gbm.version().version_compare('>= 17.1')
|
|
config_h.set('HAVE_GBM_MODIFIERS', '1')
|
|
endif
|
|
if dep_gbm.version().version_compare('>= 17.2')
|
|
config_h.set('HAVE_GBM_FD_IMPORT', '1')
|
|
endif
|
|
deps_drm += dep_gbm
|
|
endif
|
|
|
|
if get_option('backend-drm-screencast-vaapi')
|
|
srcs_drm += 'vaapi-recorder.c'
|
|
deps_drm += [
|
|
dependency('libva', version: '>= 0.34.0'),
|
|
dependency('libva-drm', version: '>= 0.34.0'),
|
|
dependency('threads'),
|
|
]
|
|
config_h.set('BUILD_VAAPI_RECORDER', '1')
|
|
endif
|
|
|
|
if dep_libdrm.version().version_compare('>= 2.4.71')
|
|
config_h.set('HAVE_DRM_ADDFB2_MODIFIERS', '1')
|
|
endif
|
|
|
|
if dep_libdrm.version().version_compare('>= 2.4.78')
|
|
config_h.set('HAVE_DRM_ATOMIC', '1')
|
|
endif
|
|
|
|
if dep_libdrm.version().version_compare('>= 2.4.83')
|
|
config_h.set('HAVE_DRM_FORMATS_BLOB', '1')
|
|
endif
|
|
|
|
plugin_drm = shared_library(
|
|
'drm-backend',
|
|
srcs_drm,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_drm,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'drm-backend.so=@0@;'.format(plugin_drm.full_path())
|
|
|
|
install_headers('compositor-drm.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('backend-headless')
|
|
config_h.set('BUILD_HEADLESS_COMPOSITOR', '1')
|
|
|
|
srcs_headless = [
|
|
'compositor-headless.c',
|
|
presentation_time_server_protocol_h,
|
|
]
|
|
plugin_headless = shared_library(
|
|
'headless-backend',
|
|
srcs_headless,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: dep_libweston,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston,
|
|
)
|
|
env_modmap += 'headless-backend.so=@0@;'.format(plugin_headless.full_path())
|
|
install_headers('compositor-headless.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('backend-rdp')
|
|
config_h.set('BUILD_RDP_COMPOSITOR', '1')
|
|
|
|
dep_frdp = dependency('freerdp2', version: '>= 2.0.0', required: false)
|
|
if not dep_frdp.found()
|
|
dep_frdp = dependency('freerdp', version: '>= 1.1.0')
|
|
endif
|
|
|
|
if cc.has_header('freerdp/version.h', dependencies: dep_frdp)
|
|
config_h.set('HAVE_FREERDP_VERSION_H', '1')
|
|
endif
|
|
|
|
if cc.has_member(
|
|
'SURFACE_BITS_COMMAND', 'bmp',
|
|
dependencies : dep_frdp,
|
|
prefix : '#include <freerdp/update.h>'
|
|
)
|
|
config_h.set('HAVE_SURFACE_BITS_BMP', '1')
|
|
endif
|
|
|
|
deps_rdp = [
|
|
dep_libweston,
|
|
dep_frdp,
|
|
]
|
|
plugin_rdp = shared_library(
|
|
'rdp-backend',
|
|
'compositor-rdp.c',
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_rdp,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'rdp-backend.so=@0@;'.format(plugin_rdp.full_path())
|
|
install_headers('compositor-rdp.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('backend-wayland')
|
|
config_h.set('BUILD_WAYLAND_COMPOSITOR', '1')
|
|
|
|
srcs_wlwl = [
|
|
'compositor-wayland.c',
|
|
fullscreen_shell_unstable_v1_client_protocol_h,
|
|
fullscreen_shell_unstable_v1_protocol_c,
|
|
presentation_time_protocol_c,
|
|
presentation_time_server_protocol_h,
|
|
xdg_shell_unstable_v6_client_protocol_h,
|
|
xdg_shell_unstable_v6_protocol_c,
|
|
]
|
|
|
|
deps_wlwl = [
|
|
dependency('wayland-client'),
|
|
dependency('wayland-cursor'),
|
|
dep_pixman,
|
|
dep_libweston,
|
|
dep_lib_cairo_shared,
|
|
]
|
|
|
|
if get_option('renderer-gl')
|
|
deps_wlwl += dep_wl_egl
|
|
endif
|
|
|
|
plugin_wlwl = shared_library(
|
|
'wayland-backend',
|
|
srcs_wlwl,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_wlwl,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'wayland-backend.so=@0@;'.format(plugin_wlwl.full_path())
|
|
install_headers('compositor-wayland.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('backend-x11')
|
|
config_h.set('BUILD_X11_COMPOSITOR', '1')
|
|
|
|
srcs_x11 = [
|
|
'compositor-x11.c',
|
|
presentation_time_server_protocol_h,
|
|
]
|
|
|
|
deps_x11 = [
|
|
dependency('xcb', version: '>= 1.8'),
|
|
dependency('xcb-shm'),
|
|
dependency('x11'),
|
|
dependency('x11-xcb'),
|
|
dep_lib_cairo_shared,
|
|
dep_pixman,
|
|
]
|
|
|
|
dep_xcb_xkb = dependency('xcb-xkb', version: '>= 1.9', required: false)
|
|
if dep_xcb_xkb.found()
|
|
deps_x11 += dep_xcb_xkb
|
|
config_h.set('HAVE_XCB_XKB', '1')
|
|
endif
|
|
|
|
if get_option('renderer-gl')
|
|
deps_x11 += dependency('egl')
|
|
endif
|
|
|
|
plugin_x11 = shared_library(
|
|
'x11-backend',
|
|
srcs_x11,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_x11,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'x11-backend.so=@0@;'.format(plugin_x11.full_path())
|
|
|
|
install_headers('compositor-x11.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('backend-fbdev')
|
|
config_h.set('BUILD_FBDEV_COMPOSITOR', '1')
|
|
|
|
srcs_fbdev = [
|
|
'compositor-fbdev.c',
|
|
'libinput-device.c',
|
|
'libinput-seat.c',
|
|
presentation_time_server_protocol_h,
|
|
]
|
|
|
|
deps_fbdev = [
|
|
dep_libweston,
|
|
dep_session_helper,
|
|
dep_libinput,
|
|
dependency('libudev', version: '>= 136'),
|
|
]
|
|
|
|
plugin_fbdev = shared_library(
|
|
'fbdev-backend',
|
|
srcs_fbdev,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_fbdev,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'fbdev-backend.so=@0@;'.format(plugin_fbdev.full_path())
|
|
|
|
install_headers('compositor-fbdev.h', subdir: dir_include_libweston)
|
|
endif
|
|
|
|
|
|
if get_option('renderer-gl')
|
|
config_h.set('ENABLE_EGL', '1')
|
|
|
|
if not dep_egl.found() or not dep_glesv2.found()
|
|
error('gl-renderer enabled but EGL/GLESv2 not found')
|
|
endif
|
|
|
|
srcs_renderer_gl = [
|
|
'gl-renderer.c',
|
|
'vertex-clipping.c',
|
|
'../shared/matrix.c',
|
|
linux_dmabuf_unstable_v1_protocol_c,
|
|
linux_dmabuf_unstable_v1_server_protocol_h,
|
|
]
|
|
deps_renderer_gl = [
|
|
dep_egl,
|
|
dep_glesv2,
|
|
dep_pixman,
|
|
dep_libweston,
|
|
dep_libdrm_headers,
|
|
]
|
|
plugin_gl = shared_library(
|
|
'gl-renderer',
|
|
srcs_renderer_gl,
|
|
include_directories: include_directories('..', '../shared'),
|
|
dependencies: deps_renderer_gl,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_libweston
|
|
)
|
|
env_modmap += 'gl-renderer.so=@0@;'.format(plugin_gl.full_path())
|
|
endif
|
|
|
|
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: include_directories('..'),
|
|
install: true
|
|
)
|
|
endif
|
|
|