From 0180aeaab17c60b5a5bdfaec03465f23b87ec3e2 Mon Sep 17 00:00:00 2001 From: Henk Kalkwater <chris+dev@netsoj.nl> Date: Wed, 12 Mar 2025 20:40:16 +0100 Subject: [PATCH] build: produce static libraries This also adds the constructor to the plugin class, as it should now be called to register the qml types. Dynamic linking mostly has its problem on Sailfish OS, as it creates larger binaries and RPMs. Since this is the only application consuming it, I see no benefit in using it. --- core/CMakeLists.txt | 4 ++-- core/include/JellyfinQt/jellyfin.h | 1 + core/src/jellyfin.cpp | 6 ++++++ sailfish/src/harbour-sailfin.cpp | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index e01a21d..b8e7967 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -114,7 +114,7 @@ endif() -add_library(JellyfinQt ${JellyfinQt_SOURCES} ${JellyfinQt_HEADERS} qmldir JellyfinQt.qmltypes) +add_library(JellyfinQt STATIC ${JellyfinQt_SOURCES} ${JellyfinQt_HEADERS} qmldir JellyfinQt.qmltypes) if(${CMAKE_VERSION} VERSION_GREATER "3.16.0") if(BUILD_PRECOMPILED_HEADERS) @@ -164,6 +164,6 @@ add_custom_command( set(QML_IMPORT_PATH $<TARGET_FILE_DIR:JellyfinQt> CACHE PATH "") -install(FILES $<TARGET_FILE_DIR:JellyfinQt>/qmldir DESTINATION ${CMAKE_INSTALL_LIBDIR}) +# install(FILES $<TARGET_FILE_DIR:JellyfinQt>/qmldir DESTINATION ${CMAKE_INSTALL_LIBDIR}) export(TARGETS JellyfinQt FILE JellyfinQtConfig.cmake) diff --git a/core/include/JellyfinQt/jellyfin.h b/core/include/JellyfinQt/jellyfin.h index 20d7b18..51ced88 100644 --- a/core/include/JellyfinQt/jellyfin.h +++ b/core/include/JellyfinQt/jellyfin.h @@ -28,6 +28,7 @@ class JellyfinPlugin : public QQmlExtensionPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) public: + explicit JellyfinPlugin(QObject *parent = nullptr); void registerTypes(const char *uri) override; }; diff --git a/core/src/jellyfin.cpp b/core/src/jellyfin.cpp index ddba2c4..8efcca3 100644 --- a/core/src/jellyfin.cpp +++ b/core/src/jellyfin.cpp @@ -48,6 +48,12 @@ namespace Jellyfin { +JellyfinPlugin::JellyfinPlugin(QObject *parent) + : QQmlExtensionPlugin(parent) +{ + +} + void JellyfinPlugin::registerTypes(const char *uri) { qmlRegisterType<ApiClient>(uri, 1, 0, "ApiClient"); qmlRegisterType<ServerDiscoveryModel>(uri, 1, 0, "ServerDiscoveryModel"); diff --git a/sailfish/src/harbour-sailfin.cpp b/sailfish/src/harbour-sailfin.cpp index 2ee1ff2..035e7a5 100644 --- a/sailfish/src/harbour-sailfin.cpp +++ b/sailfish/src/harbour-sailfin.cpp @@ -30,6 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include <QQuickView> #include <QQmlEngine> #include <QString> +#include <JellyfinQt/jellyfin.h> #include <sailfishapp.h> @@ -52,6 +53,9 @@ int main(int argc, char *argv[]) { //: Application display name app->setApplicationDisplayName(QObject::tr("Sailfin")); + Jellyfin::JellyfinPlugin *plugin = new Jellyfin::JellyfinPlugin(app); + plugin->registerTypes("nl.netsoj.chris.Jellyfin"); + QCommandLineParser cmdParser; cmdParser.addHelpOption(); cmdParser.addVersionOption();