From 678c493a083a92d1fda2375f5d2e37c00c7b9a7e Mon Sep 17 00:00:00 2001 From: Alberto Mardegan Date: Tue, 9 Jan 2018 18:23:57 +0300 Subject: [PATCH] Build: add qmltypes file to repository Generating the file at build time is troublesome when cross-compiling. It's better to add the generated file to the repository and add a make target to rebuild it. --- src/plugin.qmltypes | 187 ++++++++++++++++++++++++++++++++++++++++++++ src/src.pro | 19 +---- 2 files changed, 191 insertions(+), 15 deletions(-) create mode 100644 src/plugin.qmltypes diff --git a/src/plugin.qmltypes b/src/plugin.qmltypes new file mode 100644 index 0000000..8481efe --- /dev/null +++ b/src/plugin.qmltypes @@ -0,0 +1,187 @@ +import QtQuick.tooling 1.2 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by: +// 'qmlplugindump -notrelocatable Ubuntu.OnlineAccounts 0.1 .' + +Module { + dependencies: ["QtQuick 2.8"] + Component { + name: "OnlineAccounts::Account" + prototype: "QObject" + exports: ["Ubuntu.OnlineAccounts/Account 0.1"] + exportMetaObjectRevisions: [0] + Enum { + name: "RemovalOption" + values: { + "RemoveAccountOnly": 0, + "RemoveCredentials": 1 + } + } + Enum { + name: "RemovalOptions" + values: { + "RemoveAccountOnly": 0, + "RemoveCredentials": 1 + } + } + Property { name: "objectHandle"; type: "QObject"; isPointer: true } + Property { name: "enabled"; type: "bool"; isReadonly: true } + Property { name: "provider"; type: "QVariantMap"; isReadonly: true } + Property { name: "displayName"; type: "string"; isReadonly: true } + Property { name: "accountId"; type: "uint"; isReadonly: true } + Property { name: "accountServiceHandle"; type: "QObject"; isReadonly: true; isPointer: true } + Signal { name: "synced" } + Signal { name: "removed" } + Method { + name: "updateDisplayName" + Parameter { name: "displayName"; type: "string" } + } + Method { + name: "updateEnabled" + Parameter { name: "enabled"; type: "bool" } + } + Method { name: "sync" } + Method { + name: "remove" + Parameter { name: "options"; type: "RemovalOptions" } + } + Method { name: "remove" } + } + Component { + name: "OnlineAccounts::AccountService" + prototype: "QObject" + exports: ["Ubuntu.OnlineAccounts/AccountService 0.1"] + exportMetaObjectRevisions: [0] + Enum { + name: "ErrorCode" + values: { + "NoError": 0, + "NoAccountError": 1, + "UserCanceledError": 2, + "PermissionDeniedError": 3, + "NetworkError": 4, + "SslError": 5, + "InteractionRequiredError": 6 + } + } + Property { name: "objectHandle"; type: "QObject"; isPointer: true } + Property { name: "enabled"; type: "bool"; isReadonly: true } + Property { name: "serviceEnabled"; type: "bool"; isReadonly: true } + Property { name: "provider"; type: "QVariantMap"; isReadonly: true } + Property { name: "service"; type: "QVariantMap"; isReadonly: true } + Property { name: "displayName"; type: "string"; isReadonly: true } + Property { name: "accountId"; type: "uint"; isReadonly: true } + Property { name: "settings"; type: "QVariantMap"; isReadonly: true } + Property { name: "authData"; type: "QVariantMap"; isReadonly: true } + Property { name: "autoSync"; type: "bool" } + Property { name: "credentials"; type: "QObject"; isPointer: true } + Signal { + name: "authenticated" + Parameter { name: "reply"; type: "QVariantMap" } + } + Signal { + name: "authenticationError" + Parameter { name: "error"; type: "QVariantMap" } + } + Method { + name: "authenticate" + Parameter { name: "sessionData"; type: "QVariantMap" } + } + Method { name: "authenticate" } + Method { name: "cancelAuthentication" } + Method { + name: "updateServiceEnabled" + Parameter { name: "enabled"; type: "bool" } + } + Method { + name: "updateSettings" + Parameter { name: "settings"; type: "QVariantMap" } + } + } + Component { + name: "OnlineAccounts::AccountServiceModel" + prototype: "QAbstractListModel" + exports: ["Ubuntu.OnlineAccounts/AccountServiceModel 0.1"] + exportMetaObjectRevisions: [0] + Property { name: "count"; type: "int"; isReadonly: true } + Property { name: "includeDisabled"; type: "bool" } + Property { name: "accountId"; type: "uint" } + Property { name: "account"; type: "QObject"; isPointer: true } + Property { name: "applicationId"; type: "string" } + Property { name: "provider"; type: "string" } + Property { name: "serviceType"; type: "string" } + Property { name: "service"; type: "string" } + Method { + name: "get" + type: "QVariant" + Parameter { name: "row"; type: "int" } + Parameter { name: "roleName"; type: "string" } + } + } + Component { + name: "OnlineAccounts::ApplicationModel" + prototype: "QAbstractListModel" + exports: ["Ubuntu.OnlineAccounts/ApplicationModel 0.1"] + exportMetaObjectRevisions: [0] + Property { name: "count"; type: "int"; isReadonly: true } + Property { name: "service"; type: "string" } + Method { + name: "get" + type: "QVariant" + Parameter { name: "row"; type: "int" } + Parameter { name: "roleName"; type: "string" } + } + } + Component { + name: "OnlineAccounts::Credentials" + prototype: "QObject" + exports: ["Ubuntu.OnlineAccounts/Credentials 0.1"] + exportMetaObjectRevisions: [0] + Property { name: "credentialsId"; type: "uint" } + Property { name: "caption"; type: "string" } + Property { name: "userName"; type: "string" } + Property { name: "secret"; type: "string" } + Property { name: "storeSecret"; type: "bool" } + Property { name: "acl"; type: "QStringList" } + Property { name: "methods"; type: "QVariantMap" } + Signal { name: "synced" } + Signal { name: "removed" } + Method { name: "sync" } + Method { name: "remove" } + } + Component { + name: "OnlineAccounts::Manager" + prototype: "QObject" + exports: ["Ubuntu.OnlineAccounts/Manager 0.1"] + isCreatable: false + isSingleton: true + exportMetaObjectRevisions: [0] + Method { + name: "loadAccount" + type: "QObject*" + Parameter { name: "accountId"; type: "uint" } + } + Method { + name: "createAccount" + type: "QObject*" + Parameter { name: "providerName"; type: "string" } + } + } + Component { + name: "OnlineAccounts::ProviderModel" + prototype: "QAbstractListModel" + exports: ["Ubuntu.OnlineAccounts/ProviderModel 0.1"] + exportMetaObjectRevisions: [0] + Property { name: "applicationId"; type: "string" } + Property { name: "count"; type: "int"; isReadonly: true } + Method { + name: "get" + type: "QVariant" + Parameter { name: "row"; type: "int" } + Parameter { name: "roleName"; type: "string" } + } + } +} diff --git a/src/src.pro b/src/src.pro index 8b26639..abfc851 100644 --- a/src/src.pro +++ b/src/src.pro @@ -61,22 +61,11 @@ PLUGIN_INSTALL_BASE = $$[QT_INSTALL_QML]/$$replace(API_URI, \\., /) target.path = $${PLUGIN_INSTALL_BASE} INSTALLS += target -qmldir.files = $${DESTDIR}/qmldir +qmldir.files = $${DESTDIR}/qmldir plugin.qmltypes qmldir.path = $${PLUGIN_INSTALL_BASE} INSTALLS += qmldir -generateQmlTypes.output = $${DESTDIR}/plugin.qmltypes -generateQmlTypes.input = QML_PLUGINS -generateQmlTypes.commands = export LD_PRELOAD=${QMAKE_FILE_IN}; $$[QT_INSTALL_BINS]/qmlplugindump -notrelocatable $${API_URI} 0.1 . > ${QMAKE_FILE_OUT} -generateQmlTypes.name = Generate ${QMAKE_FILE_OUT} -generateQmlTypes.CONFIG += no_link -generateQmlTypes.variable_out = QML_TYPES -QMAKE_EXTRA_COMPILERS += generateQmlTypes - QML_PLUGINS += $${DESTDIR}/lib$${TARGET}.so - -qmltypes.path = $${PLUGIN_INSTALL_BASE} -qmltypes.files = $${DESTDIR}/plugin.qmltypes -qmltypes.depends = $${DESTDIR}/plugin.qmltypes -qmltypes.CONFIG += no_check_exist -INSTALLS += qmltypes +qmltypes.commands = export LD_PRELOAD=$${QML_PLUGINS}; $$[QT_INSTALL_BINS]/qmlplugindump -notrelocatable $${API_URI} 0.1 . > $$PWD/plugin.qmltypes +qmltypes.depends = $${QML_PLUGINS} +QMAKE_EXTRA_TARGETS += qmltypes -- 2.22.2