Make xwayland compile-time optional
This commit is contained in:
parent
decd87043f
commit
9cab66f0f9
|
@ -34,14 +34,17 @@ struct roots_desktop {
|
|||
struct wlr_compositor *compositor;
|
||||
struct wlr_wl_shell *wl_shell;
|
||||
struct wlr_xdg_shell_v6 *xdg_shell_v6;
|
||||
struct wlr_xwayland *xwayland;
|
||||
struct wlr_gamma_control_manager *gamma_control_manager;
|
||||
|
||||
struct wl_listener output_add;
|
||||
struct wl_listener output_remove;
|
||||
struct wl_listener xdg_shell_v6_surface;
|
||||
struct wl_listener xwayland_surface;
|
||||
struct wl_listener wl_shell_surface;
|
||||
|
||||
#ifdef HAS_XWAYLAND
|
||||
struct wlr_xwayland *xwayland;
|
||||
struct wl_listener xwayland_surface;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct roots_server;
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
#include <wlr/backend/session.h>
|
||||
#include <wlr/types/wlr_data_device_manager.h>
|
||||
#include <wlr/render.h>
|
||||
#ifdef HAS_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
#include "rootston/config.h"
|
||||
#include "rootston/desktop.h"
|
||||
#include "rootston/input.h"
|
||||
|
|
|
@ -49,12 +49,16 @@ struct roots_view {
|
|||
union {
|
||||
struct wlr_wl_shell_surface *wl_shell_surface;
|
||||
struct wlr_xdg_surface_v6 *xdg_surface_v6;
|
||||
#ifdef HAS_XWAYLAND
|
||||
struct wlr_xwayland_surface *xwayland_surface;
|
||||
#endif
|
||||
};
|
||||
union {
|
||||
struct roots_wl_shell_surface *roots_wl_shell_surface;
|
||||
struct roots_xdg_surface_v6 *roots_xdg_surface_v6;
|
||||
#ifdef HAS_XWAYLAND
|
||||
struct roots_xwayland_surface *roots_xwayland_surface;
|
||||
#endif
|
||||
};
|
||||
struct wlr_surface *wlr_surface;
|
||||
// TODO: This would probably be better as a field that's updated on a
|
||||
|
|
36
meson.build
36
meson.build
|
@ -20,7 +20,6 @@ add_project_link_arguments(
|
|||
)
|
||||
|
||||
wlr_inc = include_directories('include')
|
||||
install_subdir('include/wlr', install_dir: 'include')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
|
@ -68,13 +67,36 @@ if elogind.found() and get_option('enable_elogind')
|
|||
add_project_arguments('-DHAS_ELOGIND', language: 'c')
|
||||
endif
|
||||
|
||||
exclude_files = []
|
||||
wlr_parts = []
|
||||
conf_data = configuration_data()
|
||||
if get_option('enable_xwayland')
|
||||
add_project_arguments('-DHAS_XWAYLAND', language: 'c')
|
||||
subdir('xwayland')
|
||||
wlr_parts += [lib_wlr_xwayland]
|
||||
conf_data.set('WLR_HAS_XWAYLAND', true)
|
||||
else
|
||||
exclude_files += ['xwayland.h']
|
||||
endif
|
||||
configure_file(output: 'config.h', install_dir: 'include/wlr', configuration: conf_data)
|
||||
install_subdir('include/wlr', install_dir: 'include', exclude_files: exclude_files)
|
||||
|
||||
|
||||
subdir('protocol')
|
||||
subdir('backend')
|
||||
subdir('render')
|
||||
subdir('types')
|
||||
subdir('util')
|
||||
subdir('xcursor')
|
||||
subdir('xwayland')
|
||||
|
||||
wlr_parts += [
|
||||
lib_wl_protos,
|
||||
lib_wlr_backend,
|
||||
lib_wlr_render,
|
||||
lib_wlr_types,
|
||||
lib_wlr_util,
|
||||
lib_wlr_xcursor,
|
||||
]
|
||||
|
||||
wlr_deps = [
|
||||
wayland_server,
|
||||
|
@ -100,15 +122,7 @@ wlr_deps = [
|
|||
lib_wlr = library(
|
||||
'wlroots',
|
||||
files('dummy.c'),
|
||||
link_whole: [
|
||||
lib_wl_protos,
|
||||
lib_wlr_backend,
|
||||
lib_wlr_render,
|
||||
lib_wlr_types,
|
||||
lib_wlr_util,
|
||||
lib_wlr_xcursor,
|
||||
lib_wlr_xwayland,
|
||||
],
|
||||
link_whole: wlr_parts,
|
||||
dependencies: wlr_deps,
|
||||
include_directories: wlr_inc,
|
||||
install: true,
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
option('enable_libcap', type: 'boolean', value: true, description: 'Enable support for capabilities')
|
||||
option('enable_systemd', type: 'boolean', value: true, description: 'Enable support for logind')
|
||||
option('enable_elogind', type: 'boolean', value: true, description: 'Enable support for logind')
|
||||
option('enable_xwayland', type: 'boolean', value: true, description: 'Enable support X11 applications')
|
||||
|
|
|
@ -159,6 +159,7 @@ struct roots_desktop *desktop_create(struct roots_server *server,
|
|||
&desktop->wl_shell_surface);
|
||||
desktop->wl_shell_surface.notify = handle_wl_shell_surface;
|
||||
|
||||
#ifdef HAS_XWAYLAND
|
||||
if (config->xwayland) {
|
||||
desktop->xwayland = wlr_xwayland_create(server->wl_display,
|
||||
desktop->compositor);
|
||||
|
@ -166,6 +167,7 @@ struct roots_desktop *desktop_create(struct roots_server *server,
|
|||
&desktop->xwayland_surface);
|
||||
desktop->xwayland_surface.notify = handle_xwayland_surface;
|
||||
}
|
||||
#endif
|
||||
|
||||
desktop->gamma_control_manager = wlr_gamma_control_manager_create(
|
||||
server->wl_display);
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
executable(
|
||||
'rootston', [
|
||||
sources = [
|
||||
'config.c',
|
||||
'cursor.c',
|
||||
'desktop.c',
|
||||
|
@ -11,7 +10,11 @@ executable(
|
|||
'pointer.c',
|
||||
'tablet_tool.c',
|
||||
'xdg_shell_v6.c',
|
||||
'xwayland.c',
|
||||
'wl_shell.c',
|
||||
], dependencies: wlroots
|
||||
]
|
||||
if get_option('enable_xwayland')
|
||||
sources += ['xwayland.c']
|
||||
endif
|
||||
executable(
|
||||
'rootston', sources, dependencies: wlroots
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue