backends: Only build and use MetaLauncher if we have logind

Fixes: 23c2c0853c ("launcher: Move from backends/native/ to backends/")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3878
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223>
This commit is contained in:
Sebastian Wick 2025-01-20 16:38:22 +01:00 committed by Marge Bot
parent 5152fa142b
commit ef0ff602b5
4 changed files with 31 additions and 4 deletions

View File

@ -162,8 +162,10 @@ MetaIdleManager * meta_backend_get_idle_manager (MetaBackend *backend);
META_EXPORT_TEST
MetaColorManager * meta_backend_get_color_manager (MetaBackend *backend);
#ifdef HAVE_LOGIND
META_EXPORT_TEST
MetaLauncher * meta_backend_get_launcher (MetaBackend *backend);
#endif
#ifdef HAVE_LIBGUDEV
META_EXPORT_TEST

View File

@ -62,7 +62,6 @@
#include "backends/meta-input-capture.h"
#include "backends/meta-input-mapper-private.h"
#include "backends/meta-input-settings-private.h"
#include "backends/meta-launcher.h"
#include "backends/meta-logical-monitor.h"
#include "backends/meta-monitor-manager-dummy.h"
#include "backends/meta-remote-access-controller-private.h"
@ -95,6 +94,10 @@
#include "wayland/meta-wayland.h"
#endif
#ifdef HAVE_LOGIND
#include "backends/meta-launcher.h"
#endif
#ifdef HAVE_LIBGUDEV
#include "backends/meta-udev.h"
#endif
@ -149,7 +152,9 @@ struct _MetaBackendPrivate
MetaIdleManager *idle_manager;
MetaRenderer *renderer;
MetaColorManager *color_manager;
#ifdef HAVE_LOGIND
MetaLauncher *launcher;
#endif
#ifdef HAVE_LIBGUDEV
MetaUdev *udev;
#endif
@ -265,7 +270,9 @@ meta_backend_finalize (GObject *object)
g_cancellable_cancel (priv->cancellable);
g_clear_object (&priv->cancellable);
#ifdef HAVE_LOGIND
g_clear_object (&priv->launcher);
#endif
#ifdef HAVE_LIBGUDEV
g_clear_object (&priv->udev);
@ -964,6 +971,7 @@ meta_backend_class_init (MetaBackendClass *klass)
G_TYPE_NONE, 0);
}
#ifdef HAVE_LOGIND
static void
meta_backend_pause (MetaBackend *backend)
{
@ -1018,6 +1026,7 @@ meta_backend_create_launcher (MetaBackend *backend,
*launcher_out = g_steal_pointer (&launcher);
return ret;
}
#endif
static MetaMonitorManager *
meta_backend_create_monitor_manager (MetaBackend *backend,
@ -1326,8 +1335,10 @@ meta_backend_initable_init (GInitable *initable,
system_bus_gotten_cb,
backend);
#ifdef HAVE_LOGIND
if (!meta_backend_create_launcher (backend, &priv->launcher, error))
return FALSE;
#endif
#ifdef HAVE_LIBGUDEV
priv->udev = meta_udev_new (backend);
@ -1524,6 +1535,7 @@ meta_backend_get_color_manager (MetaBackend *backend)
return priv->color_manager;
}
#ifdef HAVE_LOGIND
MetaLauncher *
meta_backend_get_launcher (MetaBackend *backend)
{
@ -1531,6 +1543,7 @@ meta_backend_get_launcher (MetaBackend *backend)
return priv->launcher;
}
#endif
#ifdef HAVE_LIBGUDEV
MetaUdev *

View File

@ -43,7 +43,6 @@
#include "backends/meta-color-manager.h"
#include "backends/meta-idle-monitor-private.h"
#include "backends/meta-keymap-utils.h"
#include "backends/meta-launcher.h"
#include "backends/meta-stage-private.h"
#include "backends/x11/meta-barrier-x11.h"
#include "backends/x11/meta-clutter-backend-x11.h"
@ -61,6 +60,10 @@
#include "mtk/mtk-x11.h"
#include "x11/window-x11.h"
#ifdef HAVE_LOGIND
#include "backends/meta-launcher.h"
#endif
typedef struct _MetaBackendX11Private
{
/* The host X11 display */
@ -612,6 +615,7 @@ meta_backend_x11_init_post (MetaBackend *backend,
return TRUE;
}
#ifdef HAVE_LOGIND
static gboolean
meta_backend_x11_create_launcher (MetaBackend *backend,
MetaLauncher **launcher_out,
@ -636,6 +640,7 @@ meta_backend_x11_create_launcher (MetaBackend *backend,
*launcher_out = g_steal_pointer (&launcher);
return TRUE;
}
#endif
static ClutterBackend *
meta_backend_x11_create_clutter_backend (MetaBackend *backend,
@ -1083,7 +1088,9 @@ meta_backend_x11_class_init (MetaBackendX11Class *klass)
backend_class->init_render = meta_backend_x11_init_render;
backend_class->init_post = meta_backend_x11_init_post;
#ifdef HAVE_LOGIND
backend_class->create_launcher = meta_backend_x11_create_launcher;
#endif
backend_class->create_clutter_backend = meta_backend_x11_create_clutter_backend;
backend_class->create_color_manager = meta_backend_x11_create_color_manager;
backend_class->create_default_seat = meta_backend_x11_create_default_seat;

View File

@ -240,8 +240,6 @@ mutter_sources = [
'backends/meta-input-settings-dummy.h',
'backends/meta-keymap-utils.c',
'backends/meta-keymap-utils.h',
'backends/meta-launcher.c',
'backends/meta-launcher.h',
'backends/meta-logical-monitor.c',
'backends/meta-logical-monitor.h',
'backends/meta-monitor.c',
@ -922,6 +920,13 @@ if have_libgudev
]
endif
if have_logind
mutter_sources += [
'backends/meta-launcher.c',
'backends/meta-launcher.h',
]
endif
mutter_private_enum_sources = [
'core/window-private.h',
]