diff --git a/common/background-image.c b/common/background-image.c index 5ede55e3..72f39a79 100644 --- a/common/background-image.c +++ b/common/background-image.c @@ -24,7 +24,7 @@ enum background_mode parse_background_mode(const char *mode) { cairo_surface_t *load_background_image(const char *path) { cairo_surface_t *image; -#ifdef HAVE_GDK_PIXBUF +#if HAVE_GDK_PIXBUF GError *err = NULL; GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, &err); if (!pixbuf) { @@ -36,17 +36,17 @@ cairo_surface_t *load_background_image(const char *path) { g_object_unref(pixbuf); #else image = cairo_image_surface_create_from_png(path); -#endif //HAVE_GDK_PIXBUF +#endif // HAVE_GDK_PIXBUF if (!image) { wlr_log(WLR_ERROR, "Failed to read background image."); return NULL; } if (cairo_surface_status(image) != CAIRO_STATUS_SUCCESS) { wlr_log(WLR_ERROR, "Failed to read background image: %s." -#ifndef HAVE_GDK_PIXBUF +#if !HAVE_GDK_PIXBUF "\nSway was compiled without gdk_pixbuf support, so only" "\nPNG images can be loaded. This is the likely cause." -#endif //HAVE_GDK_PIXBUF +#endif // !HAVE_GDK_PIXBUF , cairo_status_to_string(cairo_surface_status(image))); return NULL; } diff --git a/common/cairo.c b/common/cairo.c index e8231484..f2ad54c1 100644 --- a/common/cairo.c +++ b/common/cairo.c @@ -1,7 +1,7 @@ #include #include #include "cairo.h" -#ifdef HAVE_GDK_PIXBUF +#if HAVE_GDK_PIXBUF #include #endif @@ -46,7 +46,7 @@ cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image, return new; } -#ifdef HAVE_GDK_PIXBUF +#if HAVE_GDK_PIXBUF cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdkbuf) { int chan = gdk_pixbuf_get_n_channels(gdkbuf); if (chan < 3) { @@ -140,4 +140,4 @@ cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdk cairo_surface_mark_dirty(cs); return cs; } -#endif //HAVE_GDK_PIXBUF +#endif // HAVE_GDK_PIXBUF diff --git a/include/cairo.h b/include/cairo.h index 86530b60..f28c072f 100644 --- a/include/cairo.h +++ b/include/cairo.h @@ -1,8 +1,13 @@ #ifndef _SWAY_CAIRO_H #define _SWAY_CAIRO_H + +#include "config.h" #include #include #include +#if HAVE_GDK_PIXBUF +#include +#endif void cairo_set_source_u32(cairo_t *cairo, uint32_t color); cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel subpixel); @@ -10,12 +15,11 @@ cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel subpixel) cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image, int width, int height); -#include "config.h" -#ifdef HAVE_GDK_PIXBUF -#include +#if HAVE_GDK_PIXBUF cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf( const GdkPixbuf *gdkbuf); -#endif //WITH_GDK_PIXBUF + +#endif // HAVE_GDK_PIXBUF #endif diff --git a/include/sway/criteria.h b/include/sway/criteria.h index 323ba01d..3eb583d5 100644 --- a/include/sway/criteria.h +++ b/include/sway/criteria.h @@ -25,7 +25,7 @@ struct criteria { pcre *app_id; pcre *con_mark; uint32_t con_id; // internal ID -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND pcre *class; uint32_t id; // X11 window ID pcre *instance; diff --git a/include/sway/output.h b/include/sway/output.h index 5efe1660..43c1ab96 100644 --- a/include/sway/output.h +++ b/include/sway/output.h @@ -119,7 +119,7 @@ void output_layer_for_each_surface(struct sway_output *output, struct wl_list *layer_surfaces, sway_surface_iterator_func_t iterator, void *user_data); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND void output_unmanaged_for_each_surface(struct sway_output *output, struct wl_list *unmanaged, sway_surface_iterator_func_t iterator, void *user_data); diff --git a/include/sway/server.h b/include/sway/server.h index 5fced224..a3233d66 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -14,7 +14,7 @@ #include #include "config.h" #include "list.h" -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND #include "sway/xwayland.h" #endif @@ -44,7 +44,7 @@ struct sway_server { struct wlr_xdg_shell *xdg_shell; struct wl_listener xdg_shell_surface; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct sway_xwayland xwayland; struct wl_listener xwayland_surface; struct wl_listener xwayland_ready; @@ -80,7 +80,7 @@ void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); void handle_layer_shell_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_surface(struct wl_listener *listener, void *data); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND void handle_xwayland_surface(struct wl_listener *listener, void *data); #endif void handle_server_decoration(struct wl_listener *listener, void *data); diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index a2d464f9..ceccc920 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h @@ -16,7 +16,7 @@ struct sway_root { struct wlr_output_layout *output_layout; struct wl_listener output_layout_change; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link #endif struct wl_list drag_icons; // sway_drag_icon::link diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 8f045c6a..4716c688 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -4,7 +4,7 @@ #include #include #include "config.h" -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND #include #endif #include "sway/input/input-manager.h" @@ -16,7 +16,7 @@ struct sway_xdg_decoration; enum sway_view_type { SWAY_VIEW_XDG_SHELL_V6, SWAY_VIEW_XDG_SHELL, -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND SWAY_VIEW_XWAYLAND, #endif }; @@ -28,7 +28,7 @@ enum sway_view_prop { VIEW_PROP_INSTANCE, VIEW_PROP_WINDOW_TYPE, VIEW_PROP_WINDOW_ROLE, -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND VIEW_PROP_X11_WINDOW_ID, VIEW_PROP_X11_PARENT_ID, #endif @@ -100,7 +100,7 @@ struct sway_view { union { struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; struct wlr_xdg_surface *wlr_xdg_surface; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct wlr_xwayland_surface *wlr_xwayland_surface; #endif struct wlr_wl_shell_surface *wlr_wl_shell_surface; @@ -144,7 +144,7 @@ struct sway_xdg_shell_view { struct wl_listener unmap; struct wl_listener destroy; }; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct sway_xwayland_view { struct sway_view view; @@ -323,7 +323,7 @@ struct sway_view *view_from_wlr_xdg_surface( struct wlr_xdg_surface *xdg_surface); struct sway_view *view_from_wlr_xdg_surface_v6( struct wlr_xdg_surface_v6 *xdg_surface_v6); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct sway_view *view_from_wlr_xwayland_surface( struct wlr_xwayland_surface *xsurface); #endif diff --git a/meson.build b/meson.build index 8327b763..bb60bc89 100644 --- a/meson.build +++ b/meson.build @@ -59,30 +59,18 @@ git = find_program('git', required: false) conf_data = configuration_data() +conf_data.set10('HAVE_XWAYLAND', get_option('enable-xwayland')) if get_option('enable-xwayland') - conf_data.set('HAVE_XWAYLAND', true) xcb = dependency('xcb') -else - conf_data.set('HAVE_XWAYLAND', false) endif -if gdk_pixbuf.found() - conf_data.set('HAVE_GDK_PIXBUF', true) -endif - -if systemd.found() - conf_data.set('SWAY_IDLE_HAS_SYSTEMD', true) - swayidle_deps += systemd -endif - -if elogind.found() - conf_data.set('SWAY_IDLE_HAS_ELOGIND', true) - swayidle_deps += elogind -endif +conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) +conf_data.set10('HAVE_SYSTEMD', systemd.found()) +conf_data.set10('HAVE_ELOGIND', elogind.found()) if not systemd.found() and not elogind.found() - warning('The sway binary must be setuid when compiled without (e)logind') - warning('You must do this manually post-install: chmod a+s /path/to/sway') + warning('The sway binary must be setuid when compiled without (e)logind') + warning('You must do this manually post-install: chmod a+s /path/to/sway') endif scdoc = find_program('scdoc', required: false) diff --git a/sway/commands/swap.c b/sway/commands/swap.c index de3f5c18..08860264 100644 --- a/sway/commands/swap.c +++ b/sway/commands/swap.c @@ -149,7 +149,7 @@ static bool test_con_id(struct sway_container *container, void *data) { return container->node.id == *con_id; } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND static bool test_id(struct sway_container *container, void *data) { xcb_window_t *wid = data; return (container->view && container->view->type == SWAY_VIEW_XWAYLAND @@ -184,7 +184,7 @@ struct cmd_results *cmd_swap(int argc, char **argv) { char *value = join_args(argv + 3, argc - 3); if (strcasecmp(argv[2], "id") == 0) { -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND xcb_window_t id = strtol(value, NULL, 0); other = root_find_container(test_id, &id); #endif diff --git a/sway/criteria.c b/sway/criteria.c index 1d404333..3393852c 100644 --- a/sway/criteria.c +++ b/sway/criteria.c @@ -21,7 +21,7 @@ bool criteria_is_empty(struct criteria *criteria) { && !criteria->app_id && !criteria->con_mark && !criteria->con_id -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND && !criteria->class && !criteria->id && !criteria->instance @@ -42,7 +42,7 @@ void criteria_destroy(struct criteria *criteria) { pcre_free(criteria->shell); pcre_free(criteria->app_id); pcre_free(criteria->con_mark); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND pcre_free(criteria->class); pcre_free(criteria->instance); pcre_free(criteria->window_role); @@ -55,7 +55,7 @@ static int regex_cmp(const char *item, const pcre *regex) { return pcre_exec(regex, NULL, item, strlen(item), 0, 0, NULL, 0); } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND static bool view_has_window_type(struct sway_view *view, enum atom_name name) { if (view->type != SWAY_VIEW_XWAYLAND) { return false; @@ -140,7 +140,7 @@ static bool criteria_matches_view(struct criteria *criteria, } } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND if (criteria->id) { // X11 window ID uint32_t x11_window_id = view_get_x11_window_id(view); if (!x11_window_id || x11_window_id != criteria->id) { @@ -276,7 +276,7 @@ static bool generate_regex(pcre **regex, char *value) { return true; } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND static enum atom_name parse_window_type(const char *type) { if (strcasecmp(type, "normal") == 0) { return NET_WM_WINDOW_TYPE_NORMAL; @@ -308,7 +308,7 @@ enum criteria_token { T_CON_ID, T_CON_MARK, T_FLOATING, -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND T_CLASS, T_ID, T_INSTANCE, @@ -331,7 +331,7 @@ static enum criteria_token token_from_name(char *name) { return T_CON_ID; } else if (strcmp(name, "con_mark") == 0) { return T_CON_MARK; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND } else if (strcmp(name, "class") == 0) { return T_CLASS; } else if (strcmp(name, "id") == 0) { @@ -402,7 +402,7 @@ static char *get_focused_prop(enum criteria_token token) { snprintf(id_str, id_size, "%zu", id); value = id_str; break; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND case T_CLASS: value = view_get_class(view); break; @@ -474,7 +474,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) { case T_CON_MARK: generate_regex(&criteria->con_mark, effective_value); break; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND case T_CLASS: generate_regex(&criteria->class, effective_value); break; @@ -577,7 +577,7 @@ struct criteria *criteria_parse(char *raw, char **error_arg) { ++head; struct criteria *criteria = calloc(1, sizeof(struct criteria)); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND criteria->window_type = ATOM_LAST; // default value #endif char *name = NULL, *value = NULL; diff --git a/sway/desktop/output.c b/sway/desktop/output.c index e8112bd9..d649100f 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c @@ -204,7 +204,7 @@ void output_layer_for_each_surface(struct sway_output *output, } } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND void output_unmanaged_for_each_surface(struct sway_output *output, struct wl_list *unmanaged, sway_surface_iterator_func_t iterator, void *user_data) { @@ -274,7 +274,7 @@ static void output_for_each_surface(struct sway_output *output, for_each_surface_container_iterator(floater, &data); } } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged, iterator, user_data); #endif @@ -289,7 +289,7 @@ static void output_for_each_surface(struct sway_output *output, workspace_for_each_container(workspace, for_each_surface_container_iterator, &data); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged, iterator, user_data); #endif diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 93e196bb..8d4a701b 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -140,7 +140,7 @@ static void render_layer(struct sway_output *output, render_surface_iterator, &data); } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND static void render_unmanaged(struct sway_output *output, pixman_region32_t *damage, struct wl_list *unmanaged) { struct render_data data = { @@ -966,7 +966,7 @@ void output_render(struct sway_output *output, struct timespec *when, render_floating_container(output, damage, floater); } } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND render_unmanaged(output, damage, &root->xwayland_unmanaged); #endif } else { @@ -986,7 +986,7 @@ void output_render(struct sway_output *output, struct timespec *when, render_workspace(output, damage, workspace, workspace->current.focused); render_floating(output, damage); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND render_unmanaged(output, damage, &root->xwayland_unmanaged); #endif render_layer(output, damage, diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 39cb641f..bf0038b4 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c @@ -380,7 +380,7 @@ static bool should_configure(struct sway_node *node, } struct sway_container_state *cstate = &node->sway_container->current; struct sway_container_state *istate = &instruction->container_state; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND // Xwayland views are position-aware and need to be reconfigured // when their position changes. if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) { diff --git a/sway/input/cursor.c b/sway/input/cursor.c index c81e9ab1..c6b7414c 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -63,7 +63,7 @@ static struct sway_node *node_at_coords( struct sway_seat *seat, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy) { // check for unmanaged views first -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND struct wl_list *unmanaged = &root->xwayland_unmanaged; struct sway_xwayland_unmanaged *unmanaged_surface; wl_list_for_each_reverse(unmanaged_surface, unmanaged, link) { diff --git a/sway/input/seat.c b/sway/input/seat.c index 54fdf40b..663c5140 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c @@ -92,7 +92,7 @@ static void seat_send_focus(struct sway_node *node, struct sway_seat *seat) { node->sway_container->view : NULL; if (view && seat_is_input_allowed(seat, view->surface)) { -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND if (view->type == SWAY_VIEW_XWAYLAND) { struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; wlr_xwayland_set_seat(xwayland, seat->wlr_seat); diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 110b958a..e3450df1 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c @@ -266,7 +266,7 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object struct wlr_box geometry = {0, 0, c->view->natural_width, c->view->natural_height}; json_object_object_add(object, "geometry", ipc_json_create_rect(&geometry)); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND if (c->view->type == SWAY_VIEW_XWAYLAND) { json_object_object_add(object, "window", json_object_new_int(view_get_x11_window_id(c->view))); diff --git a/sway/server.c b/sway/server.c index f06173d1..cd3fcdf6 100644 --- a/sway/server.c +++ b/sway/server.c @@ -26,7 +26,7 @@ #include "sway/server.h" #include "sway/tree/root.h" #include "config.h" -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND #include "sway/xwayland.h" #endif @@ -94,7 +94,7 @@ bool server_init(struct sway_server *server) { setenv("XCURSOR_THEME", cursor_theme, 1); } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND server->xwayland.wlr_xwayland = wlr_xwayland_create(server->wl_display, server->compositor, true); wl_signal_add(&server->xwayland.wlr_xwayland->events.new_surface, @@ -164,7 +164,7 @@ bool server_init(struct sway_server *server) { void server_fini(struct sway_server *server) { // TODO: free sway-specific resources -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND wlr_xwayland_destroy(server->xwayland.wlr_xwayland); #endif wl_display_destroy_clients(server->wl_display); diff --git a/sway/tree/container.c b/sway/tree/container.c index 89d80e51..cf6f5b54 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -171,7 +171,7 @@ static struct sway_container *surface_at_view(struct sway_container *con, double double _sx, _sy; struct wlr_surface *_surface = NULL; switch (view->type) { -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND case SWAY_VIEW_XWAYLAND: _surface = wlr_surface_surface_at(view->surface, view_sx, view_sy, &_sx, &_sy); diff --git a/sway/tree/root.c b/sway/tree/root.c index 9bda7c28..544d666a 100644 --- a/sway/tree/root.c +++ b/sway/tree/root.c @@ -31,7 +31,7 @@ struct sway_root *root_create(void) { node_init(&root->node, N_ROOT, root); root->output_layout = wlr_output_layout_create(); wl_list_init(&root->all_outputs); -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND wl_list_init(&root->xwayland_unmanaged); #endif wl_list_init(&root->drag_icons); diff --git a/sway/tree/view.c b/sway/tree/view.c index 18195467..d7110619 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -8,7 +8,7 @@ #include #include #include "config.h" -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND #include #endif #include "list.h" @@ -101,7 +101,7 @@ const char *view_get_instance(struct sway_view *view) { } return NULL; } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND uint32_t view_get_x11_window_id(struct sway_view *view) { if (view->impl->get_int_prop) { return view->impl->get_int_prop(view, VIEW_PROP_X11_WINDOW_ID); @@ -136,7 +136,7 @@ const char *view_get_shell(struct sway_view *view) { return "xdg_shell_v6"; case SWAY_VIEW_XDG_SHELL: return "xdg_shell"; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND case SWAY_VIEW_XWAYLAND: return "xwayland"; #endif @@ -484,7 +484,7 @@ static struct sway_workspace *select_workspace(struct sway_view *view) { // Check if there's a PID mapping pid_t pid; -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND if (view->type == SWAY_VIEW_XWAYLAND) { struct wlr_xwayland_surface *surf = wlr_xwayland_surface_from_wlr_surface(view->surface); @@ -802,7 +802,7 @@ struct sway_view *view_from_wlr_surface(struct wlr_surface *wlr_surface) { wlr_xdg_surface_v6_from_wlr_surface(wlr_surface); return view_from_wlr_xdg_surface_v6(xdg_surface_v6); } -#ifdef HAVE_XWAYLAND +#if HAVE_XWAYLAND if (wlr_surface_is_xwayland_surface(wlr_surface)) { struct wlr_xwayland_surface *xsurface = wlr_xwayland_surface_from_wlr_surface(wlr_surface); diff --git a/swayidle/main.c b/swayidle/main.c index 7d0f23f4..2b185949 100644 --- a/swayidle/main.c +++ b/swayidle/main.c @@ -18,10 +18,10 @@ #include "config.h" #include "idle-client-protocol.h" #include "list.h" -#ifdef SWAY_IDLE_HAS_SYSTEMD +#if HAVE_SYSTEMD #include #include -#elif defined(SWAY_IDLE_HAS_ELOGIND) +#elif HAVE_ELOGIND #include #include #endif @@ -66,7 +66,7 @@ static void cmd_exec(char *param) { } } -#if defined(SWAY_IDLE_HAS_SYSTEMD) || defined(SWAY_IDLE_HAS_ELOGIND) +#if HAVE_SYSTEMD || HAVE_ELOGIND static int lock_fd = -1; static int ongoing_fd = -1; static struct sd_bus *bus = NULL; @@ -414,7 +414,7 @@ int main(int argc, char *argv[]) { } bool should_run = state.timeout_cmds->length > 0; -#if defined(SWAY_IDLE_HAS_SYSTEMD) || defined(SWAY_IDLE_HAS_ELOGIND) +#if HAVE_SYSTEMD || HAVE_ELOGIND if (state.lock_cmd) { should_run = true; setup_sleep_listener(); diff --git a/swayidle/meson.build b/swayidle/meson.build index 6c3ac119..79d2c5c4 100644 --- a/swayidle/meson.build +++ b/swayidle/meson.build @@ -1,18 +1,26 @@ threads = dependency('threads') +swayidle_deps = [ + client_protos, + pixman, + wayland_client, + wayland_server, + wlroots, +] + +if systemd.found() + swayidle_deps += systemd +endif +if elogind.found() + swayidle_deps += elogind +endif + executable( 'swayidle', [ 'main.c', ], include_directories: [sway_inc], - dependencies: [ - client_protos, - pixman, - wayland_client, - wayland_server, - wlroots, - swayidle_deps, - ], + dependencies: swayidle_deps, link_with: [lib_sway_common, lib_sway_client], install_rpath : rpathdir, install: true