32a5acde5b
There are some specific cases in which we need Weston to behave differently when running in the test suite. This adds a new API to allow the tests to select these behaviors. For instance, in the DRM backend we plan to add a writeback connector screenshooter. In case it fails for some reason, it should fallback to the renderer screenshooter that all other backends use. But if we add a test to ensure the correctness of the writeback screenshooter, we don't want it to fallback to the renderer one, we want it to fail. With this new API we can choose to disable the fallback behavior specifically for this test. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
187 lines
4.8 KiB
Meson
187 lines
4.8 KiB
Meson
srcs_weston = [
|
|
git_version_h,
|
|
'main.c',
|
|
'text-backend.c',
|
|
'weston-screenshooter.c',
|
|
text_input_unstable_v1_server_protocol_h,
|
|
text_input_unstable_v1_protocol_c,
|
|
input_method_unstable_v1_server_protocol_h,
|
|
input_method_unstable_v1_protocol_c,
|
|
weston_screenshooter_server_protocol_h,
|
|
weston_screenshooter_protocol_c,
|
|
]
|
|
deps_weston = [
|
|
dep_libshared,
|
|
dep_libweston_public,
|
|
dep_libinput,
|
|
dep_libevdev,
|
|
dep_libdl,
|
|
dep_threads,
|
|
]
|
|
|
|
if get_option('xwayland')
|
|
config_h.set('BUILD_XWAYLAND', '1')
|
|
|
|
srcs_weston += 'xwayland.c'
|
|
config_h.set_quoted('XSERVER_PATH', get_option('xwayland-path'))
|
|
endif
|
|
|
|
libexec_weston = shared_library(
|
|
'exec_weston',
|
|
sources: srcs_weston,
|
|
include_directories: common_inc,
|
|
dependencies: deps_weston,
|
|
install_dir: dir_module_weston,
|
|
install: true,
|
|
version: '0.0.0',
|
|
soversion: 0
|
|
)
|
|
dep_libexec_weston = declare_dependency(
|
|
link_with: libexec_weston,
|
|
include_directories: [ include_directories('.'), public_inc ],
|
|
dependencies: dep_libweston_public
|
|
)
|
|
exe_weston = executable(
|
|
'weston',
|
|
'executable.c',
|
|
include_directories: common_inc,
|
|
dependencies: dep_libexec_weston,
|
|
install_rpath: dir_module_weston,
|
|
install: true
|
|
)
|
|
install_headers('weston.h', subdir: 'weston')
|
|
|
|
pkgconfig.generate(
|
|
filebase: 'weston',
|
|
name: 'Weston Plugin API',
|
|
version: version_weston,
|
|
description: 'Header files for Weston plugin development',
|
|
requires_private: [ lib_weston ],
|
|
variables: [
|
|
'libexecdir=' + join_paths('${prefix}', get_option('libexecdir')),
|
|
'pkglibexecdir=${libexecdir}/weston'
|
|
],
|
|
subdirs: 'weston'
|
|
)
|
|
|
|
install_data(
|
|
'weston.desktop',
|
|
install_dir: join_paths(dir_data, 'wayland-sessions')
|
|
)
|
|
|
|
if get_option('screenshare')
|
|
srcs_screenshare = [
|
|
'screen-share.c',
|
|
fullscreen_shell_unstable_v1_client_protocol_h,
|
|
fullscreen_shell_unstable_v1_protocol_c,
|
|
]
|
|
deps_screenshare = [
|
|
dep_libexec_weston,
|
|
dep_libshared,
|
|
dep_libweston_public,
|
|
dep_libweston_private_h, # XXX: https://gitlab.freedesktop.org/wayland/weston/issues/292
|
|
dep_wayland_client,
|
|
]
|
|
plugin_screenshare = shared_library(
|
|
'screen-share',
|
|
srcs_screenshare,
|
|
include_directories: common_inc,
|
|
dependencies: deps_screenshare,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_weston,
|
|
install_rpath: '$ORIGIN'
|
|
)
|
|
env_modmap += 'screen-share.so=@0@;'.format(plugin_screenshare.full_path())
|
|
endif
|
|
|
|
if get_option('color-management-lcms')
|
|
config_h.set('HAVE_LCMS', '1')
|
|
|
|
srcs_lcms = [
|
|
'cms-static.c',
|
|
'cms-helper.c',
|
|
]
|
|
|
|
dep_lcms2 = dependency('lcms2', required: false)
|
|
if not dep_lcms2.found()
|
|
error('cms-static requires lcms2 which was not found. Or, you can use \'-Dcolor-management-lcms=false\'.')
|
|
endif
|
|
|
|
plugin_lcms = shared_library(
|
|
'cms-static',
|
|
srcs_lcms,
|
|
include_directories: common_inc,
|
|
dependencies: [ dep_libexec_weston, dep_libweston_public, dep_lcms2 ],
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_weston,
|
|
install_rpath: '$ORIGIN'
|
|
)
|
|
env_modmap += 'cms-static.so=@0@;'.format(plugin_lcms.full_path())
|
|
endif
|
|
|
|
if get_option('color-management-colord')
|
|
if not get_option('color-management-lcms')
|
|
error('LCMS must be enabled to support colord')
|
|
endif
|
|
|
|
srcs_colord = [
|
|
'cms-colord.c',
|
|
'cms-helper.c',
|
|
]
|
|
|
|
dep_colord = dependency('colord', version: '>= 0.1.27', required: false)
|
|
if not dep_colord.found()
|
|
error('cms-colord requires colord >= 0.1.27 which was not found. Or, you can use \'-Dcolor-management-colord=false\'.')
|
|
endif
|
|
|
|
plugin_colord_deps = [ dep_libweston_public, dep_colord, dep_lcms2 ]
|
|
|
|
foreach depname : [ 'glib-2.0', 'gobject-2.0' ]
|
|
dep = dependency(depname, required: false)
|
|
if not dep.found()
|
|
error('cms-colord requires \'@0@\' which was not found. If you rather not build this, set \'-Dcolor-management-colord=false\'.'.format(depname))
|
|
endif
|
|
plugin_colord_deps += dep
|
|
endforeach
|
|
|
|
plugin_colord = shared_library(
|
|
'cms-colord',
|
|
srcs_colord,
|
|
include_directories: common_inc,
|
|
dependencies: plugin_colord_deps,
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_weston
|
|
)
|
|
env_modmap += 'cms-colord.so=@0@;'.format(plugin_colord.full_path())
|
|
endif
|
|
|
|
if get_option('systemd')
|
|
dep_libsystemd = dependency('libsystemd', required: false)
|
|
if not dep_libsystemd.found()
|
|
error('systemd-notify requires libsystemd which was not found. Or, you can use \'-Dsystemd=false\'.')
|
|
endif
|
|
|
|
plugin_systemd_notify = shared_library(
|
|
'systemd-notify',
|
|
'systemd-notify.c',
|
|
include_directories: common_inc,
|
|
dependencies: [ dep_libweston_public, dep_libsystemd ],
|
|
name_prefix: '',
|
|
install: true,
|
|
install_dir: dir_module_weston
|
|
)
|
|
env_modmap += 'systemd-notify.so=@0@;'.format(plugin_systemd_notify.full_path())
|
|
endif
|
|
|
|
weston_ini_config = configuration_data()
|
|
weston_ini_config.set('bindir', dir_bin)
|
|
weston_ini_config.set('libexecdir', dir_libexec)
|
|
configure_file(
|
|
input: '../weston.ini.in',
|
|
output: 'weston.ini',
|
|
configuration: weston_ini_config
|
|
)
|