quickshell icon indicating copy to clipboard operation
quickshell copied to clipboard

Build failure on OpenSUSE Tumbleweed

Open Joss-Steward opened this issue 3 months ago • 7 comments

I'm trying to build quickshell on my desktop running OpenSUSE Tumbleweed 20250925, but I am running into a problem with cmake finding wayland-util.h.

Configuration Output

joss@grove ~/quickshell (master)> cmake -GNinja -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCRASH_REPORTE
R=OFF
-- Quickshell configuration
--   Distributor: Unset
--   Distributor provided debuginfo: OFF
--   Disable precompild headers (dev): OFF
--   Build tests (dev): OFF
--   ASAN (dev): OFF
--   Keep Frame Pointers (dev): OFF
--   Crash Handling: OFF
--   Use jemalloc: ON
--   Unix Sockets: ON
--   Wayland: ON
--     Wlroots Layer-Shell: ON
--     Session Lock: ON
--     Foreign Toplevel Management: ON
--     Hyprland: ON
--       Hyprland IPC: ON
--       Hyprland Global Shortcuts: ON
--       Hyprland Focus Grabbing: ON
--       Hyprland Surface Extensions: ON
--     Screencopy: ON
--       Image Copy Capture: ON
--       Wlroots Screencopy: ON
--       Hyprland Toplevel Export: ON
--   X11: ON
--   I3/Sway: ON
--     I3/Sway IPC: ON
--   System Tray: ON
--   PipeWire: ON
--   Mpris: ON
--   Pam: ON
--   Greetd: ON
--   UPower: ON
--   Notifications: ON
--   Bluetooth: ON
CMake Warning at cmake/install-qml-module.cmake:6 (message):
  Neither INSTALL_QMLDIR nor INSTALL_QML_PREFIX is set.  QML modules will not
  be installed.
Call Stack (most recent call first):
  CMakeLists.txt:75 (include)


-- Found wayland-protocols at 
CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquick2plugin' is a dependency of 'quickshell', but the
  link target it defines (Qt6::qtquick2plugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qmlplugin' is a dependency of 'quickshell', but the link
  target it defines (Qt6::qmlplugin) does not exist in the current scope.
  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'modelsplugin' is a dependency of 'quickshell', but the link
  target it defines (Qt6::modelsplugin) does not exist in the current scope.
  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'workerscriptplugin' is a dependency of 'quickshell', but
  the link target it defines (Qt6::workerscriptplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2plugin' is a dependency of 'quickshell',
  but the link target it defines (Qt6::qtquickcontrols2plugin) does not exist
  in the current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2fusionstyleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2fusionstyleplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2materialstyleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2materialstyleplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2imaginestyleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2imaginestyleplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2universalstyleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2universalstyleplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2fluentwinui3styleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2fluentwinui3styleplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2basicstyleplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2basicstyleplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquicktemplates2plugin' is a dependency of 'quickshell',
  but the link target it defines (Qt6::qtquicktemplates2plugin) does not
  exist in the current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2implplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2implplugin) does not exist in the current scope.  The
  plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2fusionstyleimplplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2fusionstyleimplplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'quickwindowplugin' is a dependency of 'quickshell', but the
  link target it defines (Qt6::quickwindow) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2materialstyleimplplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2materialstyleimplplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2imaginestyleimplplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2imaginestyleimplplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2universalstyleimplplugin' is a dependency
  of 'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2universalstyleimplplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2fluentwinui3styleimplplugin' is a
  dependency of 'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2fluentwinui3styleimplplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'effectsplugin' is a dependency of 'quickshell', but the
  link target it defines (Qt6::effectsplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qquicklayoutsplugin' is a dependency of 'quickshell', but
  the link target it defines (Qt6::qquicklayoutsplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qmlshapesplugin' is a dependency of 'quickshell', but the
  link target it defines (Qt6::qmlshapesplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'qtquickcontrols2basicstyleimplplugin' is a dependency of
  'quickshell', but the link target it defines
  (Qt6::qtquickcontrols2basicstyleimplplugin) does not exist in the current
  scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


CMake Warning at /usr/lib64/cmake/Qt6Qml/Qt6QmlMacros.cmake:4408 (message):
  The qml plugin 'labsmodelsplugin' is a dependency of 'quickshell', but the
  link target it defines (Qt6::labsmodelsplugin) does not exist in the
  current scope.  The plugin will not be linked.
Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (qt6_import_qml_plugins)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:766 (cmake_language)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:844 (_qt_internal_finalize_executable)
  /usr/lib64/cmake/Qt6Core/Qt6CoreMacros.cmake:888:EVAL:1 (qt6_finalize_target)
  src/CMakeLists.txt:DEFERRED


-- Configuring done (0.9s)
-- Generating done (0.6s)
-- Build files have been written to: /home/joss/quickshell/build

I am not sure if the missing qml plugins are indicitive of another missing dependency - I believe I have installed all of the required dependencies listed in build.md. Attempting to build results in:

Build Error

joss@grove ~/quickshell (master)> cmake --build build
[52/1048] Building C object src/wayland/session_loc.../ext-session-lock-v1/wayland-ext-session-lock-v1.c.o
FAILED: [code=1] src/wayland/session_lock/CMakeFiles/wl-proto-ext-session-lock-v1-wl.dir/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/session_lock/wl-proto-ext-session-lock-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/session_lock/CMakeFiles/wl-proto-ext-session-lock-v1-wl.dir/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c.o -MF src/wayland/session_lock/CMakeFiles/wl-proto-ext-session-lock-v1-wl.dir/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c.o.d -o src/wayland/session_lock/CMakeFiles/wl-proto-ext-session-lock-v1-wl.dir/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c.o -c /home/joss/quickshell/build/src/wayland/session_lock/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c
/home/joss/quickshell/build/src/wayland/session_lock/wl-proto/ext-session-lock-v1/wayland-ext-session-lock-v1.c:28:10: fatal error: wayland-util.h: No such file or directory
   28 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[54/1048] Building C object src/wayland/wlr_layersh...-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-wlr-layer-shell-unstable-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c:31:10: fatal error: wayland-util.h: No such file or directory
   31 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[59/1048] Building C object src/wayland/toplevel_ma...land-wlr-foreign-toplevel-management-unstable-v1.c.o
FAILED: [code=1] src/wayland/toplevel_management/CMakeFiles/wl-proto-wlr-foreign-toplevel-management-unstable-v1-wl.dir/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/toplevel_management/wl-proto-wlr-foreign-toplevel-management-unstable-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/toplevel_management/CMakeFiles/wl-proto-wlr-foreign-toplevel-management-unstable-v1-wl.dir/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c.o -MF src/wayland/toplevel_management/CMakeFiles/wl-proto-wlr-foreign-toplevel-management-unstable-v1-wl.dir/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c.o.d -o src/wayland/toplevel_management/CMakeFiles/wl-proto-wlr-foreign-toplevel-management-unstable-v1-wl.dir/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c.o -c /home/joss/quickshell/build/src/wayland/toplevel_management/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c
/home/joss/quickshell/build/src/wayland/toplevel_management/wl-proto/wlr-foreign-toplevel-management-unstable-v1/wayland-wlr-foreign-toplevel-management-unstable-v1.c:31:10: fatal error: wayland-util.h: No such file or directory
   31 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[61/1048] Building C object src/wayland/wlr_layersh...hell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-xdg-shell-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c:34:10: fatal error: wayland-util.h: No such file or directory
   34 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[63/1048] Building C object src/wayland/buffer/CMak...wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c.o
FAILED: [code=1] src/wayland/buffer/CMakeFiles/wl-proto-linux-dmabuf-v1-wl.dir/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/buffer/wl-proto-linux-dmabuf-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/buffer/CMakeFiles/wl-proto-linux-dmabuf-v1-wl.dir/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c.o -MF src/wayland/buffer/CMakeFiles/wl-proto-linux-dmabuf-v1-wl.dir/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c.o.d -o src/wayland/buffer/CMakeFiles/wl-proto-linux-dmabuf-v1-wl.dir/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c.o -c /home/joss/quickshell/build/src/wayland/buffer/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c
/home/joss/quickshell/build/src/wayland/buffer/wl-proto/linux-dmabuf-v1/wayland-linux-dmabuf-v1.c:29:10: fatal error: wayland-util.h: No such file or directory
   29 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[64/1048] Building C object src/wayland/screencopy/...vel-list-v1/wayland-ext-foreign-toplevel-list-v1.c.o
FAILED: [code=1] src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-foreign-toplevel-list-v1-wl.dir/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto-ext-foreign-toplevel-list-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-foreign-toplevel-list-v1-wl.dir/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c.o -MF src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-foreign-toplevel-list-v1-wl.dir/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c.o.d -o src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-foreign-toplevel-list-v1-wl.dir/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c.o -c /home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c
/home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto/ext-foreign-toplevel-list-v1/wayland-ext-foreign-toplevel-list-v1.c:34:10: fatal error: wayland-util.h: No such file or directory
   34 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[65/1048] Building C object src/wayland/screencopy/...opy-capture-v1/wayland-ext-image-copy-capture-v1.c.o
FAILED: [code=1] src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-image-copy-capture-v1-wl.dir/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto-ext-image-copy-capture-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-image-copy-capture-v1-wl.dir/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c.o -MF src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-image-copy-capture-v1-wl.dir/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c.o.d -o src/wayland/screencopy/image_copy_capture/CMakeFiles/wl-proto-ext-image-copy-capture-v1-wl.dir/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c.o -c /home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c
/home/joss/quickshell/build/src/wayland/screencopy/image_copy_capture/wl-proto/ext-image-copy-capture-v1/wayland-ext-image-copy-capture-v1.c:30:10: fatal error: wayland-util.h: No such file or directory
   30 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[69/1048] Building CXX object CMakeFiles/qs-pchset-large.dir/cmake_pch.hxx.gch
ninja: build stopped: subcommand failed.

I do have wayland-util.h on my system, provided by the wayland-client package. Running pkg-config returns:

joss@grove ~/quickshell (master)> pkg-config --cflags wayland-client
-I/usr/include/wayland
joss@grove ~/quickshell (master)> ls /usr/include/wayland
wayland-client-core.h      wayland-cursor.h       wayland-egl.h          wayland-server-protocol.h
wayland-client.h           wayland-egl-backend.h  wayland-server-core.h  wayland-util.h
wayland-client-protocol.h  wayland-egl-core.h     wayland-server.h       wayland-version.h

I believe the problem may be related to the wayland headers being in the wayland-client package instead of where they are expected, I'm not sure if this is how it is packaged on other distributions. I tried to poke around in CMakeLists.txt to see if I could fix it, but I'm not familiar enough with cmake to make any progress.

Joss-Steward avatar Sep 29 '25 22:09 Joss-Steward

After a bit more research, I did the simplest possible thing I could think of, and added include_directories("/usr/include/wayland") to src/wayland/CMakeLists.txt. After this, the build process was able to find the appropriate wayland-util.h header.

I then encountered a second, similar error - it couldn't find GLES3/gl32.h. After searching around I was able to find this provided by the Mesa-libGLESv3-devel package. After installing that, I was able to build and install quickshell successfully.

I'll leave this open for now - I think CMakeLists.txt still needs a change to find wayland-util.h on OpenSUSE by default and I know my solution of hardcoding the include path isn't suitable for general use, but hopefully this will help anyone else who has encountered this same problem.

Joss-Steward avatar Sep 30 '25 21:09 Joss-Steward

I am not entirely sure what you did here but your system include paths are totally broken.

outfoxxed avatar Oct 01 '25 06:10 outfoxxed

I'm only building this from source because there's no package in the openSUSE repos for it. I don't think my system or my include paths are broken, considering it's a fresh OpenSUSE install.

This seems like an issue with the cmake config when building on OpenSUSE, no?

Once I added the appropriate include path for the wayland headers everything built fine, all the other headers and dependencies were correctly found without extra work on my part.

Joss-Steward avatar Oct 01 '25 21:10 Joss-Steward

I seem to have missed half your message last night and thought your gl headers were broken too. Its weird that no other distros seem to have this problem, and I can't reproduce it myself. Can you check if this patch fixes it for you?

diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt
index a96fe6b..8b4a207 100644
--- a/src/wayland/CMakeLists.txt
+++ b/src/wayland/CMakeLists.txt
@@ -66,7 +66,7 @@ function (wl_proto target name dir)
 	add_library(${target} STATIC ${QWS_CLIENT_HEADER} ${QWS_CLIENT_CODE})
 
 	target_include_directories(${target} INTERFACE ${PROTO_BUILD_PATH})
-	target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate)
+	target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate wayland-client)
 	qs_pch(${target} SET wayland-protocol)
 endfunction()
 

outfoxxed avatar Oct 02 '25 05:10 outfoxxed

Its weird that no other distros seem to have this problem

I assume OpenSUSE breaks the packages with the dependencies up in a way that some other distros don't, it doesn't seem too unusual. The installation instructions only include Fedora, Arch, Nix, and Guix - I don't know if e.g. debian has this problem or not.

I did take the time to try this on a fresh install of OpenSUSE in a VM just to make sure. There's several packages on OpenSUSE that have different names from their debian versions.

Complete reproduction steps:

I can confirm that these steps work (to reproduce the error) on a completely fresh VM with OpenSUSE, so this isn't due to a variation on my side.

  1. Install OpenSUSE Tumbleweed from the 2025-10-01 snapshot ISO.
  2. Install git, get source
sudo zypper in git
git clone https://github.com/quickshell-mirror/quickshell
cd quickshell
git checkout "v0.2.0"
  1. Install misc deps
sudo zypper in cmake spirv-tools pkg-config cmake Mesa-libGLESv3-devel cli11-devel \
wayland-protocols-devel libgbm-devel pipewire-devel jemalloc-devel
  1. Install qt deps
sudo zypper in qt6-base-devel \
qt6-declarative-devel  \
qt6-shadertools-devel \
qt6-quickprivate-devel \
qt6-quick-private-devel \
qt6-wayland-devel \
qt6-waylandclient-devel \
qt6-waylandclient-private-devel
  1. Configure
cmake -GNinja -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCRASH_REPORTER=OFF
cmake --build build

At this point, the error is returned:

joss@localhost:~/quickshell> cmake --build build
[1/949] Building C object src/wayland/wlr_layershell/CMakeFi...to-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-xdg-shell-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c:34:10: fatal error: wayland-util.h: No such file or directory
   34 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[2/949] Building C object src/wayland/wlr_layershell/CMakeFi...er-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-wlr-layer-shell-unstable-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c:31:10: fatal error: wayland-util.h: No such file or directory
   31 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[6/949] Building CXX object src/wayland/CMakeFiles/qs-pchset-wayland-protocol.dir/__/__/pchstub.cpp.o
ninja: build stopped: subcommand failed.

I tried building from main too, same results.

Trying the change

I added your change to src/wayland/CMakeLists.txt and the output did change, but it still fails to build.

Result:

joss@localhost:~/quickshell> git diff
diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt
index 1d6543e..515fa92 100644
--- a/src/wayland/CMakeLists.txt
+++ b/src/wayland/CMakeLists.txt
@@ -66,7 +66,7 @@ function (wl_proto target name dir)
        add_library(${target} STATIC ${QWS_CLIENT_HEADER} ${QWS_CLIENT_CODE})
 
        target_include_directories(${target} INTERFACE ${PROTO_BUILD_PATH})
-       target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate)
+       target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate wayland-client)
        qs_pch(${target} SET wayland-protocol)
 endfunction()
joss@localhost:~/quickshell> cmake -GNinja -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCRASH_REPORTER=OFF
joss@localhost:~/quickshell> cmake --build build
[1/947] Building C object src/wayland/wlr_layershell/CMakeFi...to-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-xdg-shell-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-xdg-shell-wl.dir/wl-proto/xdg-shell/wayland-xdg-shell.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/xdg-shell/wayland-xdg-shell.c:34:10: fatal error: wayland-util.h: No such file or directory
   34 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[2/947] Building C object src/wayland/wlr_layershell/CMakeFi...er-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o
FAILED: [code=1] src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o 
/usr/bin/cc -D_REENTRANT -I/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto-wlr-layer-shell-unstable-v1-wl_autogen/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-vla-cxx-extension -MD -MT src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -MF src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o.d -o src/wayland/wlr_layershell/CMakeFiles/wl-proto-wlr-layer-shell-unstable-v1-wl.dir/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c.o -c /home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c
/home/joss/quickshell/build/src/wayland/wlr_layershell/wl-proto/wlr-layer-shell-unstable-v1/wayland-wlr-layer-shell-unstable-v1.c:31:10: fatal error: wayland-util.h: No such file or directory
   31 | #include "wayland-util.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
[6/946] Automatic MOC for target wl-proto-wlr-screencopy-unstable-v1-wl
ninja: build stopped: subcommand failed.

Joss-Steward avatar Oct 03 '25 04:10 Joss-Steward

diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt
index a96fe6b..61af8d6 100644
--- a/src/wayland/CMakeLists.txt
+++ b/src/wayland/CMakeLists.txt
@@ -21,7 +21,7 @@ else()
 endif()
 
 qs_add_pchset(wayland-protocol
-	DEPENDENCIES Qt::Core Qt::WaylandClient Qt::WaylandClientPrivate
+	DEPENDENCIES Qt::Core Qt::WaylandClient Qt::WaylandClientPrivate wayland-client
 	HEADERS
 		<wayland-client.h>
 		<qbytearray.h>
@@ -66,7 +66,8 @@ function (wl_proto target name dir)
 	add_library(${target} STATIC ${QWS_CLIENT_HEADER} ${QWS_CLIENT_CODE})
 
 	target_include_directories(${target} INTERFACE ${PROTO_BUILD_PATH})
-	target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate)
+	target_link_libraries(wl-proto-${name}-wl PUBLIC Qt6::WaylandClient Qt6::WaylandClientPrivate wayland-client)
+	target_link_libraries(${target} PRIVATE wl-proto-${name}-wl)
 	qs_pch(${target} SET wayland-protocol)
 endfunction()
 

Try this one? It might take a couple times to figure this out, the above is a guess.

outfoxxed avatar Oct 03 '25 07:10 outfoxxed

diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt index a96fe6b..61af8d6 100644 --- a/src/wayland/CMakeLists.txt +++ b/src/wayland/CMakeLists.txt @@ -21,7 +21,7 @@ else() endif()

qs_add_pchset(wayland-protocol

  • DEPENDENCIES Qt::Core Qt::WaylandClient Qt::WaylandClientPrivate
  • DEPENDENCIES Qt::Core Qt::WaylandClient Qt::WaylandClientPrivate wayland-client HEADERS <wayland-client.h> <qbytearray.h> @@ -66,7 +66,8 @@ function (wl_proto target name dir) add_library(${target} STATIC ${QWS_CLIENT_HEADER} ${QWS_CLIENT_CODE})

    target_include_directories(${target} INTERFACE ${PROTO_BUILD_PATH})

  • target_link_libraries(${target} wl-proto-${name}-wl Qt6::WaylandClient Qt6::WaylandClientPrivate)
  • target_link_libraries(wl-proto-${name}-wl PUBLIC Qt6::WaylandClient Qt6::WaylandClientPrivate wayland-client)
  • target_link_libraries(${target} PRIVATE wl-proto-${name}-wl) qs_pch(${target} SET wayland-protocol) endfunction()

Try this one? It might take a couple times to figure this out, the above is a guess.

This fixes building on openSUSE, or at least makes it possible.

halogenbarrel avatar Oct 26 '25 18:10 halogenbarrel

As a simple workaround, symlinking /usr/include/wayland/wayland-util.h to /usr/include/wayland-util.h works fine

FourteenBrush avatar Dec 28 '25 16:12 FourteenBrush