plugin: refactor into modules

This commit is contained in:
2 * r + 2 * t 2025-09-13 14:38:44 +10:00
parent a57dd9343a
commit 306cfc06ed
28 changed files with 77 additions and 47 deletions

View file

@ -6,7 +6,7 @@ import "../images"
import qs.services import qs.services
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts

View file

@ -1,5 +1,5 @@
import qs.utils import qs.utils
import Caelestia import Caelestia.Managers
import Quickshell import Quickshell
import QtQuick import QtQuick

View file

@ -3,7 +3,7 @@ pragma ComponentBehavior: Bound
import qs.components import qs.components
import qs.services import qs.services
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Widgets import Quickshell.Widgets
import QtQuick import QtQuick

View file

@ -6,7 +6,7 @@ import qs.components.controls
import qs.services import qs.services
import qs.utils import qs.utils
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Widgets import Quickshell.Widgets
import Quickshell.Services.Mpris import Quickshell.Services.Mpris

View file

@ -2,7 +2,7 @@ import qs.components
import qs.services import qs.services
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Services
import QtQuick import QtQuick
import QtQuick.Shapes import QtQuick.Shapes

View file

@ -3,7 +3,7 @@ import qs.components.effects
import qs.components.images import qs.components.images
import qs.services import qs.services
import qs.config import qs.config
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import QtQuick import QtQuick

View file

@ -8,50 +8,49 @@ pkg_check_modules(Cava IMPORTED_TARGET cava REQUIRED)
set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml") set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml")
qt_standard_project_setup(REQUIRES 6.9) qt_standard_project_setup(REQUIRES 6.9)
qt_add_qml_module(caelestia function(qml_module arg_TARGET)
cmake_parse_arguments(PARSE_ARGV 1 arg "" "URI" "SOURCES;LIBRARIES")
qt_add_qml_module(${arg_TARGET}
URI ${arg_URI}
VERSION ${VERSION}
SOURCES ${arg_SOURCES}
)
qt_query_qml_module(${arg_TARGET}
URI module_uri
VERSION module_version
PLUGIN_TARGET module_plugin_target
TARGET_PATH module_target_path
QMLDIR module_qmldir
TYPEINFO module_typeinfo
)
message(STATUS "Created QML module ${module_uri}, version ${module_version}")
set(module_dir "${INSTALL_QMLDIR}/${module_target_path}")
install(TARGETS ${arg_TARGET} LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
install(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
install(FILES "${module_qmldir}" DESTINATION "${module_dir}")
install(FILES "${module_typeinfo}" DESTINATION "${module_dir}")
target_link_libraries(${arg_TARGET} PRIVATE Qt::Core Qt::Qml ${arg_LIBRARIES})
endfunction()
qml_module(caelestia
URI Caelestia URI Caelestia
VERSION ${VERSION}
SOURCES SOURCES
cutils.hpp cutils.cpp cutils.hpp cutils.cpp
cachingimagemanager.hpp cachingimagemanager.cpp
filesystemmodel.hpp filesystemmodel.cpp
qalculator.hpp qalculator.cpp qalculator.hpp qalculator.cpp
beattracker.hpp beattracker.cpp
service.hpp service.cpp
serviceref.hpp serviceref.cpp
audiocollector.hpp audiocollector.cpp
audioprovider.hpp audioprovider.cpp
cavaprovider.hpp cavaprovider.cpp
appdb.hpp appdb.cpp appdb.hpp appdb.cpp
requests.hpp requests.cpp requests.hpp requests.cpp
LIBRARIES
Qt::Gui
Qt::Quick
Qt::Sql
PkgConfig::Qalculate
) )
qt_query_qml_module(caelestia add_subdirectory(Managers)
URI module_uri add_subdirectory(Models)
VERSION module_version add_subdirectory(Services)
PLUGIN_TARGET module_plugin_target
TARGET_PATH module_target_path
QMLDIR module_qmldir
TYPEINFO module_typeinfo
)
message(STATUS "Created QML module ${module_uri}, version ${module_version}")
set(module_dir "${INSTALL_QMLDIR}/${module_target_path}")
install(TARGETS caelestia LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
install(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
install(FILES "${module_qmldir}" DESTINATION "${module_dir}")
install(FILES "${module_typeinfo}" DESTINATION "${module_dir}")
target_link_libraries(caelestia PRIVATE
Qt::Core
Qt::Qml
Qt::Gui
Qt::Quick
Qt::Concurrent
Qt::Sql
PkgConfig::Qalculate
PkgConfig::Pipewire
PkgConfig::Aubio
PkgConfig::Cava
)

View file

@ -0,0 +1,9 @@
qml_module(caelestia-managers
URI Caelestia.Managers
SOURCES
cachingimagemanager.hpp cachingimagemanager.cpp
LIBRARIES
Qt::Gui
Qt::Quick
Qt::Concurrent
)

View file

@ -0,0 +1,8 @@
qml_module(caelestia-models
URI Caelestia.Models
SOURCES
filesystemmodel.hpp filesystemmodel.cpp
LIBRARIES
Qt::Gui
Qt::Concurrent
)

View file

@ -0,0 +1,14 @@
qml_module(caelestia-services
URI Caelestia.Services
SOURCES
service.hpp service.cpp
serviceref.hpp serviceref.cpp
beattracker.hpp beattracker.cpp
audiocollector.hpp audiocollector.cpp
audioprovider.hpp audioprovider.cpp
cavaprovider.hpp cavaprovider.cpp
LIBRARIES
PkgConfig::Pipewire
PkgConfig::Aubio
PkgConfig::Cava
)

View file

@ -1,7 +1,7 @@
pragma Singleton pragma Singleton
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Services.Pipewire import Quickshell.Services.Pipewire

View file

@ -2,7 +2,7 @@ pragma Singleton
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import QtQuick import QtQuick