From e9e8ddc5be9c3b9f52d5f6e98c56bc6fb386625e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Thu, 8 May 2025 16:56:13 +0200 Subject: [PATCH] Linux: Fix build with `dbus=no` or `threads=no` --- platform/linuxbsd/detect.py | 2 +- platform/linuxbsd/wayland/display_server_wayland.cpp | 6 +++--- platform/linuxbsd/x11/display_server_x11.cpp | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py index da0e62af44d..ab15452d5ea 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py @@ -336,7 +336,7 @@ def configure(env: "SConsEnvironment"): else: env.Append(CPPDEFINES=["PULSEAUDIO_ENABLED", "_REENTRANT"]) - if env["dbus"]: + if env["dbus"] and env["threads"]: # D-Bus functionality expects threads. if not env["use_sowrap"]: if os.system("pkg-config --exists dbus-1") == 0: # 0 means found env.ParseConfig("pkg-config dbus-1 --cflags --libs") diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index 7b9b7ac502c..6c042bd57f0 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -1535,14 +1535,14 @@ Key DisplayServerWayland::keyboard_get_keycode_from_physical(Key p_keycode) cons } bool DisplayServerWayland::color_picker(const Callable &p_callback) { +#ifdef DBUS_ENABLED WindowID window_id = MAIN_WINDOW_ID; // TODO: Use window IDs for multiwindow support. - WaylandThread::WindowState *ws = wayland_thread.wl_surface_get_window_state(wayland_thread.window_get_wl_surface(window_id)); -#ifdef DBUS_ENABLED return portal_desktop->color_picker((ws ? ws->exported_handle : String()), p_callback); -#endif +#else return false; +#endif } void DisplayServerWayland::try_suspend() { diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index 3875b958f47..51372ae5c84 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -3628,6 +3628,7 @@ Key DisplayServerX11::keyboard_get_label_from_physical(Key p_keycode) const { } bool DisplayServerX11::color_picker(const Callable &p_callback) { +#ifdef DBUS_ENABLED WindowID window_id = last_focused_window; if (!windows.has(window_id)) { @@ -3636,6 +3637,9 @@ bool DisplayServerX11::color_picker(const Callable &p_callback) { String xid = vformat("x11:%x", (uint64_t)windows[window_id].x11_window); return portal_desktop->color_picker(xid, p_callback); +#else + return false; +#endif } DisplayServerX11::Property DisplayServerX11::_read_property(Display *p_display, Window p_window, Atom p_property) {