Hi all, at this point it's being a bit of a problem for me not being able to add any C++ part in kirigami, since i cannot do a qml plugin (or subsurface would break) We included it as qrc resources in the beginning in order to make something that worked quickly, but in the end it should be a normal plugin on every platform. This patch does that for android, it should also make things a bit simpler, as removes the burden of maintaining the list of resources updated.
It's *NOT* ready yet tough, for two reasons: it needs also a patch in the cmake file used to deploy https://github.com/LaurentGomila/qt-android-cmake/pull/8 so it depends on that being merged. And it's only for Android so far, so this would break the iOS version. I don't have iDevices so i don't know exactly what should be done, but the procedure should be similar, building the kirigami repo separatedly then install it somewhere to then get packaged with the installed files ending up in the same location where the qt imports from qt itself end up. on windows/osx shouldn't be an issue as afaik only the desktop version is build there -- Marco Martin
From 114e27857b8f050cbb24365151baf89048e24c56 Mon Sep 17 00:00:00 2001 From: Marco Martin <[email protected]> Date: Thu, 5 May 2016 16:27:37 +0200 Subject: [PATCH] Use the proper QML plugin for kirigami As a quick and dirty solution the kirigami components were directly embedded in the application as qrc resources, this made not possible to have a C++ portion of the plugin and caused a breakage every time a qml file was added upstream (not being listed in the qrc) this changes the deployment procedure by using the android-extra-plugins concept in the deploy json file. this deploys the installed kirigami plugin (and icons that were manually added beforehand) in the apk Signed-off-by: Marco Martin <[email protected]> --- CMakeLists.txt | 1 + mobile-widgets/qml/mobile-resources.qrc | 44 --------------------------------- packaging/android/build.sh | 13 ++++++++++ scripts/mobilecomponents.sh | 30 +++++++++------------- 4 files changed, 26 insertions(+), 62 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc7db13..32ac7a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -326,6 +326,7 @@ if(ANDROID) include(${QT_ANDROID_CMAKE}) add_qt_android_apk(${SUBSURFACE_TARGET}.apk ${SUBSURFACE_TARGET} PACKAGE_SOURCES ${CMAKE_BINARY_DIR}/android-mobile + EXTRA_PLUGINS "${CMAKE_INSTALL_PREFIX}/lib/qml" ) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(APP_BUNDLE_DIR "${SUBSURFACE_TARGET}.app") diff --git a/mobile-widgets/qml/mobile-resources.qrc b/mobile-widgets/qml/mobile-resources.qrc index 85b8fbc..0476c1f 100644 --- a/mobile-widgets/qml/mobile-resources.qrc +++ b/mobile-widgets/qml/mobile-resources.qrc @@ -23,48 +23,4 @@ <file alias="menu-back.png">icons/menu-back.png</file> <file alias="nocloud.svg">icons/nocloud.svg</file> </qresource> - <qresource prefix="/imports"> - <file alias="org/kde/kirigami/qmldir">kirigami/qmldir</file> - <file alias="org/kde/kirigami/Action.qml">kirigami/Action.qml</file> - <file alias="org/kde/kirigami/ApplicationWindow.qml">kirigami/ApplicationWindow.qml</file> - <file alias="org/kde/kirigami/BasicListItem.qml">kirigami/BasicListItem.qml</file> - <file alias="org/kde/kirigami/GlobalDrawer.qml">kirigami/GlobalDrawer.qml</file> - <file alias="org/kde/kirigami/ContextDrawer.qml">kirigami/ContextDrawer.qml</file> - <file alias="org/kde/kirigami/Page.qml">kirigami/Page.qml</file> - <file alias="org/kde/kirigami/ScrollablePage.qml">kirigami/ScrollablePage.qml</file> - <file alias="org/kde/kirigami/Icon.qml">kirigami/Icon.qml</file> - <file alias="org/kde/kirigami/Heading.qml">kirigami/Heading.qml</file> - <file alias="org/kde/kirigami/OverlaySheet.qml">kirigami/OverlaySheet.qml</file> - <file alias="org/kde/kirigami/ApplicationHeader.qml">kirigami/ApplicationHeader.qml</file> - <file alias="org/kde/kirigami/AbstractApplicationHeader.qml">kirigami/AbstractApplicationHeader.qml</file> - <file alias="org/kde/kirigami/AbstractApplicationWindow.qml">kirigami/AbstractApplicationWindow.qml</file> - <file alias="org/kde/kirigami/private/PageRow.qml">kirigami/private/PageRow.qml</file> - <file alias="org/kde/kirigami/Label.qml">kirigami/Label.qml</file> - <file alias="org/kde/kirigami/AbstractListItem.qml">kirigami/AbstractListItem.qml</file> - <file alias="org/kde/kirigami/SwipeListItem.qml">kirigami/SwipeListItem.qml</file> - <file alias="org/kde/kirigami/OverlayDrawer.qml">kirigami/OverlayDrawer.qml</file> - <file alias="org/kde/kirigami/Theme.qml">kirigami/Theme.qml</file> - <file alias="org/kde/kirigami/Units.qml">kirigami/Units.qml</file> - <file alias="org/kde/kirigami/private/AbstractDrawer.qml">kirigami/private/AbstractDrawer.qml</file> - <file alias="org/kde/kirigami/private/ActionButton.qml">kirigami/private/ActionButton.qml</file> - <file alias="org/kde/kirigami/private/BackButton.qml">kirigami/private/BackButton.qml</file> - <file alias="org/kde/kirigami/private/ContextIcon.qml">kirigami/private/ContextIcon.qml</file> - <file alias="org/kde/kirigami/private/DefaultListItemBackground.qml">kirigami/private/DefaultListItemBackground.qml</file> - <file alias="org/kde/kirigami/private/EdgeShadow.qml">kirigami/private/EdgeShadow.qml</file> - <file alias="org/kde/kirigami/private/MenuIcon.qml">kirigami/private/MenuIcon.qml</file> - <file alias="org/kde/kirigami/private/PageActionPropertyGroup.qml">kirigami/private/PageActionPropertyGroup.qml</file> - <file alias="org/kde/kirigami/private/PassiveNotification.qml">kirigami/private/PassiveNotification.qml</file> - <file alias="org/kde/kirigami/private/RefreshableScrollView.qml">kirigami/private/RefreshableScrollView.qml</file> - <file alias="org/kde/kirigami/icons/go-next.svg">kirigami/icons/go-next.svg</file> - <file alias="org/kde/kirigami/icons/go-previous.svg">kirigami/icons/go-previous.svg</file> - <file alias="org/kde/kirigami/icons/distribute-horizontal-x.svg">kirigami/icons/distribute-horizontal-x.svg</file> - <file alias="org/kde/kirigami/icons/document-edit.svg">kirigami/icons/document-edit.svg</file> - <file alias="org/kde/kirigami/icons/document-save.svg">kirigami/icons/document-save.svg</file> - <file alias="org/kde/kirigami/icons/view-readermode.svg">kirigami/icons/view-readermode.svg</file> - <file alias="org/kde/kirigami/icons/dialog-cancel.svg">kirigami/icons/dialog-cancel.svg</file> - <file alias="org/kde/kirigami/icons/application-menu.svg">kirigami/icons/application-menu.svg</file> - <file alias="org/kde/kirigami/icons/gps.svg">kirigami/icons/gps.svg</file> - <file alias="org/kde/kirigami/icons/trash-empty.svg">kirigami/icons/trash-empty.svg</file> - <file alias="org/kde/kirigami/icons/list-add.svg">kirigami/icons/list-add.svg</file> - </qresource> </RCC> diff --git a/packaging/android/build.sh b/packaging/android/build.sh index 2213780..8d6f11d 100644 --- a/packaging/android/build.sh +++ b/packaging/android/build.sh @@ -290,6 +290,18 @@ if [ ! -e $PKG_CONFIG_LIBDIR/libdivecomputer.pc ] ; then popd fi +if [ ! -e kirigami-build-$ARCH ] ; then + mkdir -p kirigami-build-$ARCH + pushd kirigami-build-$ARCH + cmake -DCMAKE_SYSTEM_NAME=Android \ + -DCMAKE_INSTALL_PREFIX=${PREFIX} \ + -DCMAKE_PREFIX_PATH=${QT5_ANDROID}/android_${QT_ARCH}/ \ + $SUBSURFACE_SOURCE/../kirigami/ + make + make install + popd +fi + if [ ! -e qt-android-cmake ] ; then git clone git://github.com/LaurentGomila/qt-android-cmake.git else @@ -337,6 +349,7 @@ cmake $MOBILE_CMAKE \ -DPKG_CONFIG_EXECUTABLE=${PKGCONF} \ -DQT_ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT \ -DQT_ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT \ + -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DCMAKE_TOOLCHAIN_FILE=$BUILDROOT/qt-android-cmake/toolchain/android.toolchain.cmake \ -DQT_ANDROID_CMAKE=$BUILDROOT/qt-android-cmake/AddQtAndroidApk.cmake \ -DFORCE_LIBSSH=ON \ diff --git a/scripts/mobilecomponents.sh b/scripts/mobilecomponents.sh index d406f71..e53df43 100755 --- a/scripts/mobilecomponents.sh +++ b/scripts/mobilecomponents.sh @@ -47,24 +47,18 @@ MC=$SRC/subsurface/mobile-widgets/qml/kirigami PMMC=kirigami/src/qml BREEZE=breeze-icons -rm -rf $MC -mkdir -p $MC/icons -cp -R $PMMC/* $MC/ -cp $PMMC/../fallbacktheme/*qml $MC/ +mkdir -p $PMMC/icons -# fix plugin requirement -sed -i -e 's/^plugin kirigamiplugin/# plugin kirigamiplugin/' $MC/qmldir - -cp $BREEZE/icons/actions/24/dialog-cancel.svg $MC/icons -cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $MC/icons -cp $BREEZE/icons/actions/24/document-edit.svg $MC/icons -cp $BREEZE/icons/actions/24/document-save.svg $MC/icons -cp $BREEZE/icons/actions/24/go-next.svg $MC/icons -cp $BREEZE/icons/actions/24/go-previous.svg $MC/icons -cp $BREEZE/icons/actions/16/view-readermode.svg $MC/icons -cp $BREEZE/icons/actions/24/application-menu.svg $MC/icons -cp $BREEZE/icons/actions/22/gps.svg $MC/icons -cp $BREEZE/icons/actions/24/trash-empty.svg $MC/icons -cp $BREEZE/icons/actions/24/list-add.svg $MC/icons +cp $BREEZE/icons/actions/24/dialog-cancel.svg $PMMC/icons +cp $BREEZE/icons/actions/24/distribute-horizontal-x.svg $PMMC/icons +cp $BREEZE/icons/actions/24/document-edit.svg $PMMC/icons +cp $BREEZE/icons/actions/24/document-save.svg $PMMC/icons +cp $BREEZE/icons/actions/24/go-next.svg $PMMC/icons +cp $BREEZE/icons/actions/24/go-previous.svg $PMMC/icons +cp $BREEZE/icons/actions/16/view-readermode.svg $PMMC/icons +cp $BREEZE/icons/actions/24/application-menu.svg $PMMC/icons +cp $BREEZE/icons/actions/22/gps.svg $PMMC/icons +cp $BREEZE/icons/actions/24/trash-empty.svg $PMMC/icons +cp $BREEZE/icons/actions/24/list-add.svg $PMMC/icons echo org.kde.plasma.kirigami synced from upstream -- 2.1.4
_______________________________________________ subsurface mailing list [email protected] http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
