From cd534b446219ad25711a55d9340d0d84de2ea2d9 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Sun, 20 Apr 2025 04:42:08 +0200 Subject: [PATCH] CMake: Fix dbus automagic Allows to disable dbus usage even on systems where dbus is installed. --- CMake/options.cmake | 1 + CMake/variables.cmake | 5 ++++- CMakeLists.txt | 1 + src/CMakeLists.txt | 12 +++++++----- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CMake/options.cmake b/CMake/options.cmake index 8411b92ec..22377e28b 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -307,6 +307,7 @@ if(UNIX) endif() unset(FLTK_GRAPHICS_CAIRO CACHE) set(FLTK_GRAPHICS_CAIRO TRUE CACHE BOOL "all drawing to X11 windows uses Cairo") + option(FLTK_USE_DBUS "use D-Bus" ON) option(FLTK_USE_SYSTEM_LIBDECOR "use libdecor from the system" ON) set(USE_SYSTEM_LIBDECOR 1) unset(FLTK_USE_XRENDER CACHE) diff --git a/CMake/variables.cmake b/CMake/variables.cmake index 4d1be9f2d..1d6f3e265 100644 --- a/CMake/variables.cmake +++ b/CMake/variables.cmake @@ -44,9 +44,12 @@ if(WIN32) elseif(APPLE AND NOT FLTK_BACKEND_X11) list(APPEND FLTK_LDLIBS ${FLTK_COCOA_FRAMEWORKS}) elseif(FLTK_BACKEND_WAYLAND) - foreach(_lib WLDCURSOR WLDCLIENT XKBCOMMON DBUS) + foreach(_lib WLDCURSOR WLDCLIENT XKBCOMMON) list(APPEND FLTK_LDLIBS "${${_lib}_LDFLAGS}") endforeach() + if(FLTK_USE_DBUS) + list(APPEND FLTK_LDLIBS "${DBUS_LDFLAGS}") + endif(FLTK_USE_DBUS) if(USE_SYSTEM_LIBDECOR) list(APPEND FLTK_LDLIBS ${SYSTEM_LIBDECOR_LDFLAGS}) endif(USE_SYSTEM_LIBDECOR) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08548b2b4..1ce0d7835 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -334,6 +334,7 @@ if(FLTK_BACKEND_WAYLAND) else() fl_summary("" "Libdecor = Bundled") endif() + fl_summary_yn("Use DBUS" DBUS_FOUND) endif(FLTK_BACKEND_WAYLAND) message("") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9c58ed958..ce5a80730 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -533,14 +533,16 @@ if(FLTK_USE_X11) endif(FLTK_USE_X11) if(FLTK_BACKEND_WAYLAND) - pkg_check_modules(DBUS IMPORTED_TARGET dbus-1) set(IDIRS "${CMAKE_CURRENT_BINARY_DIR}") set(CDEFS "_GNU_SOURCE;HAVE_MEMFD_CREATE;HAVE_MKOSTEMP;HAVE_POSIX_FALLOCATE") set(COPTS "-fPIC") - if(DBUS_FOUND) - set(CDEFS "${CDEFS};HAS_DBUS") - set(IDIRS "${IDIRS};${DBUS_INCLUDE_DIRS}") - endif(DBUS_FOUND) + if(FLTK_USE_DBUS) + pkg_check_modules(DBUS IMPORTED_TARGET dbus-1) + if(DBUS_FOUND) + set(CDEFS "${CDEFS};HAS_DBUS") + set(IDIRS "${IDIRS};${DBUS_INCLUDE_DIRS}") + endif(DBUS_FOUND) + endif(FLTK_USE_DBUS) if(USE_SYSTEM_LIBDECOR) set(CDEFS "${CDEFS};USE_SYSTEM_LIBDECOR;LIBDECOR_PLUGIN_DIR=${LIBDECOR_PLUGIN_DIR}") if(GTK_FOUND)