From 569c40494d8792b161c7141f674b14aeafd99fb6 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 29 May 2024 19:29:57 -0700 Subject: [PATCH] all: import module dependencies via qmldir Improves compatibility with qml tooling. --- src/wayland/CMakeLists.txt | 11 +++++++++- src/wayland/hyprland/CMakeLists.txt | 13 ++++++++++-- .../hyprland/focus_grab/CMakeLists.txt | 9 +-------- src/wayland/hyprland/focus_grab/init.cpp | 20 ------------------- .../hyprland/global_shortcuts/CMakeLists.txt | 9 +-------- .../hyprland/global_shortcuts/init.cpp | 20 ------------------- src/wayland/init.cpp | 7 ------- 7 files changed, 23 insertions(+), 66 deletions(-) delete mode 100644 src/wayland/hyprland/focus_grab/init.cpp delete mode 100644 src/wayland/hyprland/global_shortcuts/init.cpp diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt index 48140a9..f20bc11 100644 --- a/src/wayland/CMakeLists.txt +++ b/src/wayland/CMakeLists.txt @@ -51,16 +51,19 @@ endfunction() # ----- qt_add_library(quickshell-wayland STATIC) -qt_add_qml_module(quickshell-wayland URI Quickshell.Wayland VERSION 0.1) # required to make sure the constructor is linked add_library(quickshell-wayland-init OBJECT init.cpp) +set(WAYLAND_MODULES) + if (WAYLAND_WLR_LAYERSHELL) target_sources(quickshell-wayland PRIVATE wlr_layershell.cpp) add_subdirectory(wlr_layershell) target_compile_definitions(quickshell-wayland PRIVATE QS_WAYLAND_WLR_LAYERSHELL) target_compile_definitions(quickshell-wayland-init PRIVATE QS_WAYLAND_WLR_LAYERSHELL) + + list(APPEND WAYLAND_MODULES Quickshell.Wayland._WlrLayerShell) endif() if (WAYLAND_SESSION_LOCK) @@ -75,6 +78,12 @@ endif() target_link_libraries(quickshell-wayland PRIVATE ${QT_DEPS}) target_link_libraries(quickshell-wayland-init PRIVATE ${QT_DEPS}) +qt_add_qml_module(quickshell-wayland + URI Quickshell.Wayland + VERSION 0.1 + IMPORTS ${WAYLAND_MODULES} +) + qs_pch(quickshell-wayland) qs_pch(quickshell-waylandplugin) qs_pch(quickshell-wayland-init) diff --git a/src/wayland/hyprland/CMakeLists.txt b/src/wayland/hyprland/CMakeLists.txt index 06121a7..be6bf49 100644 --- a/src/wayland/hyprland/CMakeLists.txt +++ b/src/wayland/hyprland/CMakeLists.txt @@ -1,15 +1,24 @@ qt_add_library(quickshell-hyprland STATIC) -qt_add_qml_module(quickshell-hyprland URI Quickshell.Hyprland VERSION 0.1) + +target_link_libraries(quickshell-hyprland PRIVATE ${QT_DEPS}) + +set(HYPRLAND_MODULES) if (HYPRLAND_FOCUS_GRAB) add_subdirectory(focus_grab) + list(APPEND HYPRLAND_MODULES Quickshell.Hyprland._FocusGrab) endif() if (HYPRLAND_GLOBAL_SHORTCUTS) add_subdirectory(global_shortcuts) + list(APPEND HYPRLAND_MODULES Quickshell.Hyprland._GlobalShortcuts) endif() -target_link_libraries(quickshell-hyprland PRIVATE ${QT_DEPS}) +qt_add_qml_module(quickshell-hyprland + URI Quickshell.Hyprland + VERSION 0.1 + IMPORTS ${HYPRLAND_MODULES} +) qs_pch(quickshell-hyprland) qs_pch(quickshell-hyprlandplugin) diff --git a/src/wayland/hyprland/focus_grab/CMakeLists.txt b/src/wayland/hyprland/focus_grab/CMakeLists.txt index 587ae93..1e37c9f 100644 --- a/src/wayland/hyprland/focus_grab/CMakeLists.txt +++ b/src/wayland/hyprland/focus_grab/CMakeLists.txt @@ -9,21 +9,14 @@ qt_add_qml_module(quickshell-hyprland-focus-grab VERSION 0.1 ) -add_library(quickshell-hyprland-focus-grab-init OBJECT init.cpp) - wl_proto(quickshell-hyprland-focus-grab hyprland-focus-grab-v1 "${CMAKE_CURRENT_SOURCE_DIR}/hyprland-focus-grab-v1.xml" ) target_link_libraries(quickshell-hyprland-focus-grab PRIVATE ${QT_DEPS} wayland-client) -target_link_libraries(quickshell-hyprland-focus-grab-init PRIVATE ${QT_DEPS}) qs_pch(quickshell-hyprland-focus-grab) qs_pch(quickshell-hyprland-focus-grabplugin) -qs_pch(quickshell-hyprland-focus-grab-init) -target_link_libraries(quickshell PRIVATE - quickshell-hyprland-focus-grabplugin - quickshell-hyprland-focus-grab-init -) +target_link_libraries(quickshell PRIVATE quickshell-hyprland-focus-grabplugin) diff --git a/src/wayland/hyprland/focus_grab/init.cpp b/src/wayland/hyprland/focus_grab/init.cpp deleted file mode 100644 index 784c7f2..0000000 --- a/src/wayland/hyprland/focus_grab/init.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -#include "../../../core/plugin.hpp" - -namespace { - -class HyprlandFocusGrabPlugin: public QuickshellPlugin { - void registerTypes() override { - qmlRegisterModuleImport( - "Quickshell.Hyprland", - QQmlModuleImportModuleAny, - "Quickshell.Hyprland._FocusGrab", - QQmlModuleImportLatest - ); - } -}; - -QS_REGISTER_PLUGIN(HyprlandFocusGrabPlugin); - -} // namespace diff --git a/src/wayland/hyprland/global_shortcuts/CMakeLists.txt b/src/wayland/hyprland/global_shortcuts/CMakeLists.txt index 804c0a3..2ccfb74 100644 --- a/src/wayland/hyprland/global_shortcuts/CMakeLists.txt +++ b/src/wayland/hyprland/global_shortcuts/CMakeLists.txt @@ -9,21 +9,14 @@ qt_add_qml_module(quickshell-hyprland-global-shortcuts VERSION 0.1 ) -add_library(quickshell-hyprland-global-shortcuts-init OBJECT init.cpp) - wl_proto(quickshell-hyprland-global-shortcuts hyprland-global-shortcuts-v1 "${CMAKE_CURRENT_SOURCE_DIR}/hyprland-global-shortcuts-v1.xml" ) target_link_libraries(quickshell-hyprland-global-shortcuts PRIVATE ${QT_DEPS} wayland-client) -target_link_libraries(quickshell-hyprland-global-shortcuts-init PRIVATE ${QT_DEPS}) qs_pch(quickshell-hyprland-global-shortcuts) qs_pch(quickshell-hyprland-global-shortcutsplugin) -qs_pch(quickshell-hyprland-global-shortcuts-init) -target_link_libraries(quickshell PRIVATE - quickshell-hyprland-global-shortcutsplugin - quickshell-hyprland-global-shortcuts-init -) +target_link_libraries(quickshell PRIVATE quickshell-hyprland-global-shortcutsplugin) diff --git a/src/wayland/hyprland/global_shortcuts/init.cpp b/src/wayland/hyprland/global_shortcuts/init.cpp deleted file mode 100644 index 12fed07..0000000 --- a/src/wayland/hyprland/global_shortcuts/init.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -#include "../../../core/plugin.hpp" - -namespace { - -class HyprlandFocusGrabPlugin: public QuickshellPlugin { - void registerTypes() override { - qmlRegisterModuleImport( - "Quickshell.Hyprland", - QQmlModuleImportModuleAny, - "Quickshell.Hyprland._GlobalShortcuts", - QQmlModuleImportLatest - ); - } -}; - -QS_REGISTER_PLUGIN(HyprlandFocusGrabPlugin); - -} // namespace diff --git a/src/wayland/init.cpp b/src/wayland/init.cpp index 194bad4..95adb24 100644 --- a/src/wayland/init.cpp +++ b/src/wayland/init.cpp @@ -34,13 +34,6 @@ class WaylandPlugin: public QuickshellPlugin { // will not be registered. This can be worked around with a module import which makes // the QML_ELMENT module import the old register-type style module. - qmlRegisterModuleImport( - "Quickshell.Wayland", - QQmlModuleImportModuleAny, - "Quickshell.Wayland._WlrLayerShell", - QQmlModuleImportLatest - ); - qmlRegisterModuleImport( "Quickshell", QQmlModuleImportModuleAny,