summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpackaging/android/qmake-build.sh61
1 files changed, 38 insertions, 23 deletions
diff --git a/packaging/android/qmake-build.sh b/packaging/android/qmake-build.sh
index ebaf89c51..b9180836c 100755
--- a/packaging/android/qmake-build.sh
+++ b/packaging/android/qmake-build.sh
@@ -133,6 +133,27 @@ if [ ! -f libdivecomputer/configure ] ; then
fi
popd
+# if this isn't just a quick rebuild, pull kirigami, icons, etc, and finally build the Googlemaps plugin
+if [ "$QUICK" = "" ] ; then
+ pushd "$SUBSURFACE_SOURCE"
+ bash -x ./scripts/mobilecomponents.sh
+ popd
+
+ # build google maps plugin
+ # this is the easy one as it uses qmake which ensures things get built for all platforms, etc
+ "${SUBSURFACE_SOURCE}"/scripts/get-dep-lib.sh singleAndroid . googlemaps
+ QT_PLUGINS_PATH=$($QMAKE -query QT_INSTALL_PLUGINS)
+ GOOGLEMAPS_BIN=libqtgeoservices_googlemaps.so
+ if [ ! -e "$QT_PLUGINS_PATH"/geoservices/$GOOGLEMAPS_BIN ] || [ googlemaps/.git/HEAD -nt "$QT_PLUGINS_PATH"/geoservices/$GOOGLEMAPS_BIN ] ; then
+ mkdir -p googlemaps-build
+ pushd googlemaps-build
+ $QMAKE ANDROID_ABIS="$BUILD_ABIS" ../googlemaps/googlemaps.pro
+ make -j4
+ make install
+ popd
+ fi
+fi
+
# autoconf based libraries are harder
# build default architectures, or the given one?
if [ "$ARCHITECTURES" = "" ] ; then
@@ -158,7 +179,6 @@ for ARCH in $ARCHITECTURES ; do
BUILD_ABIS="$BUILD_ABIS $ANDROID_ABI"
export TARGET=$ARCH-linux-android
-
export AR=$TOOLCHAIN/bin/$BINUTIL_ARCH-linux-android$EABI-ar
export AS=$TOOLCHAIN/bin/$BINUTIL_ARCH-linux-android$EABI-as
export CC=$TOOLCHAIN/bin/$TARGET$EABI$ANDROID_PLATFORM_LEVEL-clang
@@ -309,6 +329,23 @@ for ARCH in $ARCHITECTURES ; do
fi # QUICK
+ # on Android I can't make an integrated build work, so let's build Kirigami separately?
+ mkdir -p "$BUILDROOT"/kirigami-build-"$ARCH"
+ pushd "$BUILDROOT"/kirigami-build-"$ARCH"
+ cmake \
+ -DANDROID="1" \
+ -DANDROID_ABI="$ANDROID_ABI" \
+ -DBUILD_SHARED_LIBS="OFF" \
+ -DBUILD_EXAMPLES="OFF" \
+ -DCMAKE_PREFIX_PATH=/android/5.15.1/android/lib/cmake \
+ -DCMAKE_C_COMPILER="$CC" \
+ -DCMAKE_LINKER="$CC" \
+ -DCMAKE_INSTALL_PREFIX="$PREFIX" \
+ "$SUBSURFACE_SOURCE"/mobile-widgets/3rdparty/kirigami
+ make
+ make install
+ popd
+
CURRENT_SHA=$(cd "$SUBSURFACE_SOURCE"/libdivecomputer ; git describe)
PREVIOUS_SHA=$(cat "libdivecomputer-${ARCH}.SHA" 2>/dev/null || echo)
if [ ! "$CURRENT_SHA" = "$PREVIOUS_SHA" ] || [ ! -e "$PKG_CONFIG_PATH/libdivecomputer.pc" ] ; then
@@ -324,27 +361,6 @@ for ARCH in $ARCHITECTURES ; do
echo "====================================="
done # ARCH
-# if this isn't just a quick rebuild, pull kirigami, icons, etc, and finally build the Googlemaps plugin
-if [ "$QUICK" = "" ] ; then
- pushd "$SUBSURFACE_SOURCE"
- bash ./scripts/mobilecomponents.sh
- popd
-
- # build google maps plugin
- # this is the easy one as it uses qmake which ensures things get built for all platforms, etc
- "${SUBSURFACE_SOURCE}"/scripts/get-dep-lib.sh singleAndroid . googlemaps
- QT_PLUGINS_PATH=$($QMAKE -query QT_INSTALL_PLUGINS)
- GOOGLEMAPS_BIN=libqtgeoservices_googlemaps.so
- if [ ! -e "$QT_PLUGINS_PATH"/geoservices/$GOOGLEMAPS_BIN ] || [ googlemaps/.git/HEAD -nt "$QT_PLUGINS_PATH"/geoservices/$GOOGLEMAPS_BIN ] ; then
- mkdir -p googlemaps-build
- pushd googlemaps-build
- $QMAKE ANDROID_ABIS="$BUILD_ABIS" ../googlemaps/googlemaps.pro
- make -j4
- make install
- popd
- fi
-fi
-
# set up the final build
pushd "$BUILDROOT"/subsurface-mobile-build
rm -rf android-build
@@ -357,7 +373,6 @@ popd
echo "Run qmake to setup the Subsurface-mobile build for all architectures"
$QMAKE BUILD_NR="$BUILDNR" BUILD_VERSION_NAME="$SUBSURFACE_MOBILE_VERSION" ANDROID_ABIS="$BUILD_ABIS" "$SUBSURFACE_SOURCE"/Subsurface-mobile.pro
-
# if this isn't just a quick rebuild compile the translations
if [ "$QUICK" = "" ] ; then
pushd "$SUBSURFACE_SOURCE"/translations