This fixes the subsurface-mobile build on my Linux desktop and on
android.

To get it to run on Linux desktop, set QT_QUICK_CONTROLS_STYLE to
something that kirigami doesn't know about, like kakor. Otherwise it
will detect Desktop and die on:
qrc:/styles/Desktop/Icon.qml:23 module "org.kde.kquickcontrolsaddons" is not 
installed

This works with kirigami 32c980c46, when 47fb7821 is reverted.

Signed-off-by: Anton Lundin <[email protected]>
---
The cmake parts are sketchy at best, and should be fixed in a better way.

It would also be nice if kirigami static build did have a install target
that created a dir contaning the needed parts.

 CMakeLists.txt              |  3 ++-
 packaging/android/build.sh  | 13 +++++++++----
 scripts/build.sh            | 10 +++++-----
 scripts/mobilecomponents.sh |  7 ++++---
 4 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a824d03..6328dc0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -240,7 +240,8 @@ if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES 
"MobileExecutable")
        endif()
        ADD_LIBRARY(kirigami_static_library STATIC IMPORTED)
        SET_TARGET_PROPERTIES(kirigami_static_library PROPERTIES
-               IMPORTED_LOCATION 
${CMAKE_SOURCE_DIR}/../kirigami-build/src/libkirigamiplugin.a)
+               IMPORTED_LOCATION ${KIRIGAMI_LIBRARY})
+       add_definitions(-DKIRIGAMI_BUILD_TYPE_STATIC)
        target_link_libraries(
                ${SUBSURFACE_TARGET}
                subsurface_profile
diff --git a/packaging/android/build.sh b/packaging/android/build.sh
index d844e8d..4b353e3 100644
--- a/packaging/android/build.sh
+++ b/packaging/android/build.sh
@@ -316,11 +316,15 @@ if [ "$SUBSURFACE_MOBILE" = "ON" ] ; then
        pushd $SUBSURFACE_SOURCE
        bash ./scripts/mobilecomponents.sh
        popd
-       rm -rf kirigami-build
-       mkdir -p kirigami-build
-       pushd kirigami-build
-       cmake $SUBSURFACE_SOURCE/mobile-widgets/qml/kirigami/ 
-DSTATIC_LIBRARY=ON 
-DCMAKE_PREFIX_PATH:UNINITIALIZED=${QT5_ANDROID}/android_${QT_ARCH}/lib/cmake
+       rm -rf kirigami-build-$ARCH
+       mkdir -p kirigami-build-$ARCH
+       pushd kirigami-build-$ARCH
+       cmake \
+               $SUBSURFACE_SOURCE/../kirigami/ \
+               -DSTATIC_LIBRARY=ON \
+               
-DCMAKE_PREFIX_PATH:UNINITIALIZED=${QT5_ANDROID}/android_${QT_ARCH}/lib/cmake
        make -j4
+       
KIRIGAMI_LIBRARY="-DKIRIGAMI_LIBRARY=../kirigami-build-$ARCH/src/libkirigamiplugin.a"
        popd
 fi
 
@@ -361,6 +365,7 @@ cmake $MOBILE_CMAKE \
        -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
        -DMAKE_TESTS=OFF \
        -DFTDISUPPORT=${FTDI} \
+       $KIRIGAMI_LIBRARY \
        $SUBSURFACE_SOURCE
 
 # sometimes cmake tries to link both against the static and shared
diff --git a/scripts/build.sh b/scripts/build.sh
index 02f1095..113ab6f 100755
--- a/scripts/build.sh
+++ b/scripts/build.sh
@@ -232,20 +232,20 @@ for (( i=0 ; i < ${#BUILDS[@]} ; i++ )) ; do
        if [ "$SUBSURFACE_EXECUTABLE" = "MobileExecutable" ] ; then
                cd $SRC/subsurface
                bash ./scripts/mobilecomponents.sh
-               cd mobile-widgets/qml/kirigami
-               # hack to work around issue in current kirigami
-               sed -i.bak -e '/styles\/Desktop\/ContextDrawer.qml/d' 
kirigami.qrc
-               sed -i.bak -e '/ecm_create_qm_loader/d' src/CMakeLists.txt
                mkdir -p $SRC/kirigami-build
                cd $SRC/kirigami-build
-               cmake $SRC/subsurface/mobile-widgets/qml/kirigami/ 
-DSTATIC_LIBRARY=ON
+               cmake $SRC/kirigami \
+                       -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH \
+                       -DSTATIC_LIBRARY=ON
                make -j4
+               
KIRIGAMI_LIBRARY="-DKIRIGAMI_LIBRARY=$SRC/kirigami-build/src/libkirigamiplugin.a"
        fi
 
        mkdir -p $SRC/subsurface/$BUILDDIR
        cd $SRC/subsurface/$BUILDDIR
        export CMAKE_PREFIX_PATH="$INSTALL_ROOT/lib/cmake;${CMAKE_PREFIX_PATH}"
        cmake -DCMAKE_BUILD_TYPE=Debug .. \
+               $KIRIGAMI_LIBRARY \
                -DSUBSURFACE_TARGET_EXECUTABLE=$SUBSURFACE_EXECUTABLE \
                -DLIBGIT2_INCLUDE_DIR=$INSTALL_ROOT/include \
                -DLIBGIT2_LIBRARIES=$INSTALL_ROOT/lib/libgit2.$SH_LIB_EXT \
diff --git a/scripts/mobilecomponents.sh b/scripts/mobilecomponents.sh
index 4072bf4..a907538 100755
--- a/scripts/mobilecomponents.sh
+++ b/scripts/mobilecomponents.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
 #
 # 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
@@ -48,9 +48,10 @@ PMMC=kirigami
 BREEZE=breeze-icons
 
 rm -rf $MC
-mkdir -p $MC/icons
-cp -R $PMMC/* $MC/
+mkdir -p $MC/src
+cp $PMMC/src/kirigamiplugin.h $MC/src
 
+mkdir -p $MC/icons
 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
-- 
2.7.4

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to