Fwd: Subsurface-mobile crosssbuild
Axel Richter
Axel.Richter at freenet.de
Sun Jul 17 12:35:00 PDT 2016
Am 17.07.2016 um 15:58 schrieb Willem Ferguson:
>
> Hallo Axel,
> I hope that the text underneath is not too unreadable.
>
> The short version of my request:
> I get an error when running a cross-built Subsurface
> Android,
> indicating kirigami has not been loaded.
>
> The long version of my request;
> I installed Qt5.7 (see location in build.sh)
> Did the patches you suggested.
> Exported JAVA_HOME
> The build runs ok, creating the .apk
>
> Underneath the listings of:
> build.sh in packaging/android
> mobile-resources.qrc
> mobile-components.sh
> adb logcat output.
>
> Any ideas what I am doing wrong?
>
> Kind regards,
> willem
>
> git describe
> ==========
> v4.5.2-1475-geaed18b
>
> Build.sh:
> =================
> set -e
> PLATFORM=$(uname)
> # (trick to get the absolute path, either if we're called
> with a
> # absolute path or a relative path)
> pushd $(dirname $0)/../../
> export SUBSURFACE_SOURCE=$PWD
> popd
>
> # is this a release or debug build
> BUILD_TYPE=Debug
> if [ "$1" = "release" ] || [ "$1" = "Release" ] ; then
> shift
> BUILD_TYPE=Release
> fi
> if [ "$1" = "debug" ] || [ "$1" = "Debug" ] ; then
> # this is the default - still need to eat the argument
> if given
> shift
> fi
>
> if [ "$1" = "-buildnr" ] ; then
> shift
> BUILD_NR="\"$1\""
> shift
> else
> BUILD_NR="\"0\""
> fi
>
> # Configure where we can find things here
> export ANDROID_NDK_ROOT=/usr/share/android-ndk-r12 # --->
> export QT5_ANDROID=/home/willem/Qt/5.7 # --->
>
> #if [ ! -z "$QT5_ANDROID" ] ; then
> # echo "Using Qt5 in $QT5_ANDROID"
> #elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.7" ] ; then
> # export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.7
> #elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.6" ] ; then
> # export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.6
> #elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.5" ] ; then
> # export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.5
> #else
> # echo "Cannot find Qt 5.7, 5.6 or 5.5 under
> $SUBSURFACE_SOURCE/../Qt"
> # exit 1
> #fi
>
> if [ $PLATFORM = Darwin ] ; then
> export
> ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT-$SUBSURFACE_SOURCE/../android-sdk-macosx}
>
> export ANDROID_NDK_HOST=darwin-x86_64
> else
> export
> ANDROID_SDK_ROOT=/usr/share/android-sdk-linux # --->
> export ANDROID_NDK_HOST=linux-x86
> fi
>
> ........................................
>
> export QT5_ANDROID_BIN=${QT5_ANDROID}/android_${QT_ARCH}/bin
>
> if [ ! -e ndk-$ARCH ] ; then
> $ANDROID_NDK_ROOT/build/tools/make_standalone_toolchain.py
> --arch=$ARCH --install-dir=ndk-$ARCH --api=16
> fi
> export BUILDROOT=$PWD
> export PATH=${BUILDROOT}/ndk-$ARCH/bin:$PATH
> export PREFIX=${BUILDROOT}/ndk-$ARCH/sysroot/usr
> export PKG_CONFIG_LIBDIR=${PREFIX}/lib/pkgconfig
> export CC=${BUILDROOT}/ndk-$ARCH/bin/${BUILDCHAIN}-gcc
> export CXX=${BUILDROOT}/ndk-$ARCH/bin/${BUILDCHAIN}-g++
> # autoconf seems to get lost without this
> export SYSROOT=${BUILDROOT}/ndk-$ARCH/sysroot
> export CFLAGS="--sysroot=${SYSROOT}"
> export CPPFLAGS="--sysroot=${SYSROOT}"
> export CXXFLAGS="--sysroot=${SYSROOT}"
> # Junk needed for qt-android-cmake
> export ANDROID_STANDALONE_TOOLCHAIN=${BUILDROOT}/ndk-$ARCH
> #if [ $PLATFORM = Darwin ] ; then
> # JAVA_HOME=$(/usr/libexec/java_home)
> # export JAVA_HOME
> #else
> export JAVA_HOME=/usr/share/jdk1.8.0_77 #
> ----->
> # export JAVA_HOME=/usr #
> ----->
> #fi
>
>
> mobile-resouces.qrc
> ===================
> <RCC>
> <qresource prefix="/qml">
> <file>main.qml</file>
> <file>Preferences.qml</file>
> <file>About.qml</file>
> <file>CloudCredentials.qml</file>
>
> ...........
>
> <file
> alias="menu-edit.png">icons/menu-edit.png</file>
> <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/Action.qml">kirigami/Action.qml</file>
>
> # ---->
> <file
> alias="org/kde/kirigami/ApplicationWindow.qml">kirigami/ApplicationWindow.qml</file>
>
>
>
> Mobile-components.sh
> =====================
> #!/bin/bash
> #
> # if you run the build.sh script to build Subsurface
> you'll never need
> # this, but if you build your binaries differently for
> some reason and
> # you want to build Subsurface-mobile, running this from
> within the
> # checked out source directory (not your build directory)
> should do the
> # trick - you can also run this to update to the latest
> upstream when
> # you don't want to rerun the whole build.sh script.
>
> SRC=$(cd .. ; pwd)
>
> if [ ! -d "$SRC/subsurface" ] || [ ! -d "mobile-widgets" ]
> || [ ! -d
> "core" ] ; then
> echo "please start this script from the Subsurface
> source directory
> (which needs to be named \"subsurface\")."
> exit 1
> fi
>
> if [ "$1" = "-nopull" ] ; then
> NOPULL=1
> fi
>
> # now bring in the latest Kirigami mobile components plus
> a couple of
> icons that we need
> # first, get the latest from upstream
> # yes, this is a bit overkill as we clone a lot of stuff
> for just a few
> files, but this way
> # we stop having to manually merge our code with upstream
> all the time
> # as we get closer to shipping a production version we'll
> likely check
> out specific tags
> # or SHAs from upstream
> cd $SRC
> if [ ! -d kirigami ] ; then
> git clone git://github.com/KDE/kirigami
> fi
> if [ "$NOPULL" = "" ] ; then
> pushd kirigami
> git pull
> popd
> fi
> if [ ! -d breeze-icons ] ; then
> git clone git://anongit.kde.org/breeze-icons
> fi
> if [ "$NOPULL" = "" ] ; then
> pushd breeze-icons
> git pull
> popd
> fi
>
> # now copy the components and a couple of icons into plae
> MC=$SRC/subsurface/mobile-widgets/qml/kirigami
> PMMC=kirigami/src/controls
> # ------------->
> BREEZE=breeze-icons
>
> rm -rf $MC
> mkdir -p $MC/icons
> cp -R $PMMC/* $MC/
> #cp $PMMC/../fallbacktheme/*qml $MC/
> cp -R $PMMC/templates/*
> $MC/ #
> ----------->
>
> # fix plugin requirement
> sed -i -e 's/^plugin kirigamiplugin/# plugin
> kirigamiplugin/' $MC/qmldir
>
>
> adb logcat | -i subsurface:
> ===========================
> 07-17 11:08:38.755 4145 4145 I ApplicationPackageManager:
> load=org.subsurfacedivelog.mobile, bg=192-192, dr=192-192
> 07-17 11:08:48.805 4438 4438 I Timeline: Timeline:
> Activity_launch_request id:org.subsurfacedivelog.mobile
> time:9386825
> 07-17 11:08:48.835 13025 13025 W SELinux : SELinux:
> seapp_context_lookup: seinfo=default, level=s0:c512,c768,
> pkgname=org.subsurfacedivelog.mobile
> 07-17 11:08:48.875 3468 3579 D ISSUE_DEBUG:
> InputChannelName : 8ae118c
> Starting org.subsurfacedivelog.mobile
> 07-17 11:08:48.875 13025 13025 D InjectionManager:
> fillFeatureStoreMap
> org.subsurfacedivelog.mobile
> 07-17 11:08:48.875 13025 13025 I InjectionManager:
> Constructor
> org.subsurfacedivelog.mobile, Feature store :{}
> 07-17 11:08:48.925 3468 3579 V WindowStateAnimator:
> Finishing drawing
> window Window{8ae118c u0 d0 Starting
> org.subsurfacedivelog.mobile}:
> mDrawState=DRAW_PENDING
> 07-17 11:08:48.925 3468 3579 V WindowStateAnimator:
> Finishing drawing
> window Window{8ae118c u0 d0 Starting
> org.subsurfacedivelog.mobile}:
> mDrawState=COMMIT_DRAW_PENDING
> 07-17 11:08:49.065 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Concurrent.so:
>
> unused DT entry: type 0x1d arg 0xc8e
> 07-17 11:08:49.065 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Concurrent.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.065 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so:
> unused DT
> entry: type 0x1d arg 0x5066f
> 07-17 11:08:49.065 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.075 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Widgets.so:
>
> unused DT entry: type 0x1d arg 0x6b435
> 07-17 11:08:49.075 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Widgets.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.085 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Svg.so:
> unused DT
> entry: type 0x1d arg 0x8f3b
> 07-17 11:08:49.085 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Svg.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.095 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Positioning.so:
>
> unused DT entry: type 0x1d arg 0x5afb
> 07-17 11:08:49.095 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Positioning.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.105 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Network.so:
>
> unused DT entry: type 0x1d arg 0x119fc
> 07-17 11:08:49.105 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Network.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.105 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Qml.so:
> unused DT
> entry: type 0x1d arg 0x33ce0
> 07-17 11:08:49.105 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Qml.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.115 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Quick.so:
> unused
> DT entry: type 0x1d arg 0x3d948
> 07-17 11:08:49.115 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Quick.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.125 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5AndroidExtras.so:
>
> unused DT entry: type 0x1d arg 0x5920
> 07-17 11:08:49.125 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5AndroidExtras.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.135 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Bluetooth.so:
>
> unused DT entry: type 0x1d arg 0x6e39
> 07-17 11:08:49.135 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Bluetooth.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.135 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5QuickParticles.so:
> unused
> DT entry: type 0x1d arg 0x365b
> 07-17 11:08:49.135 13025 13025 W linker :
> /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5QuickParticles.so:
> unsupported
> flags DT_FLAGS_1=0x81
> 07-17 11:08:49.145 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
>
> unused DT entry: type 0x1d arg 0x9315
> 07-17 11:08:49.145 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.145 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqtforandroid.so"
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
>
> unused DT entry: type 0x1d arg 0x1746
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqandroidbearer.so"
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
>
> unused DT entry: type 0x1d arg 0x132d
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.155 13025 13025 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqtposition_android.so"
> 07-17 11:08:49.205 3468 4436 D ISSUE_DEBUG:
> InputChannelName : 8e404c1
> org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity
>
> 07-17 11:08:49.345 13025 13077 D libGLESv1: DTS_GLAPI :
> DTS is not
> allowed for Package : org.subsurfacedivelog.mobile
> 07-17 11:08:49.385 3468 4451 V WindowStateAnimator:
> Finishing drawing
> window Window{8e404c1 u0 d0
> org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity}:
>
> mDrawState=DRAW_PENDING
> 07-17 11:08:49.405 3468 3579 I ActivityManager: Displayed
> org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity:
>
> +587ms
> 07-17 11:08:49.405 3468 3579 I Timeline: Timeline:
> Activity_windows_visible id: ActivityRecord{523995c u0
> org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity
>
> t83} time:9387428
> 07-17 11:08:49.415 13025 13091 W Subsurface: (null):0
> ((null)):
> QFont::setPointSizeF: Point size <= 0 (-1.000000), must be
> greater than 0
> 07-17 11:08:49.435 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
>
> unused DT entry: type 0x1d arg 0x4bd
> 07-17 11:08:49.435 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.435 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqtquick2plugin.so"
> 07-17 11:08:49.445 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
>
> unused DT entry: type 0x1d arg 0x41f5
> 07-17 11:08:49.445 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.445 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqtquickcontrolsplugin.so"
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
>
> unused DT entry: type 0x1d arg 0x493
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libwindowplugin.so"
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
>
> unused DT entry: type 0x1d arg 0x249b
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.455 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libdialogplugin.so"
> 07-17 11:08:49.465 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
>
> unused DT entry: type 0x1d arg 0x1b00
> 07-17 11:08:49.465 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
>
> unsupported flags DT_FLAGS_1=0x81
> 07-17 11:08:49.465 13025 13105 W linker :
> /data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
>
> is missing DT_SONAME will use basename as a replacement:
> "libqquicklayoutsplugin.so"
> 07-17 11:08:49.475 13025 13091 W Subsurface: (null):0
> ((null)):
> QQmlApplicationEngine failed to load component
> 07-17 11:08:49.475 13025 13091 W Subsurface: (null):0
> ((null)):
> qrc:///qml/main.qml:9 module "org.kde.kirigami" is not
> installed
> 07-17 11:08:49.475 13025 13091 W Subsurface:
> 07-17 11:08:49.855 4145 4145 I ApplicationPackageManager:
> load=org.subsurfacedivelog.mobile, bg=192-192, dr=192-192
>
Dear Willem,
I think kirigami must be installed seperately and will no
longer copied/build in to subsurface. I'll have a look this
week. Maybe Marco Martin has some clue on this, I think he
prepares a patch to use kirigami in a different way.
Axel.
--
Axel Richter
More information about the subsurface
mailing list