mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Add wrapper script to set up Android build
This then runs the script under packaging/android. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
3fd26a80dc
commit
a69852e56d
1 changed files with 113 additions and 0 deletions
113
scripts/android-build.sh
Normal file
113
scripts/android-build.sh
Normal file
|
@ -0,0 +1,113 @@
|
|||
#!/bin/bash
|
||||
|
||||
# run this in the top level folder you want to create Android binaries in
|
||||
#
|
||||
# it seems that with Qt5.7.1 and current cmake there is an odd bug where
|
||||
# cmake fails reporting :No known features for CXX compiler "GNU". In that
|
||||
# case simly comment out the "set(property(TARGET Qt5::Core PROPERTY...)"
|
||||
# at line 101 of
|
||||
# Qt/5.7/android_armv7/lib/cmake/Qt5Core/Qt5CoreConfigExtras.cmake
|
||||
|
||||
exec 1> >(tee ./build.log) 2>&1
|
||||
|
||||
USE_X=`case "$-" in *x*) echo "-x" ;; esac`
|
||||
|
||||
# these are the current versions for Qt, Android SDK & NDK:
|
||||
|
||||
QT_VERSION=5.7
|
||||
LATEST_QT=5.7.1
|
||||
NDK_VERSION=r13b
|
||||
SDK_VERSION=r25.2.3
|
||||
|
||||
ANDROID_NDK=android-ndk-${NDK_VERSION}
|
||||
ANDROID_SDK=android-sdk-linux
|
||||
|
||||
PLATFORM=$(uname)
|
||||
|
||||
if [ "$PLATFORM" = "Linux" ] ; then
|
||||
QT_BINARIES=qt-opensource-linux-x64-android-${LATEST_QT}.run
|
||||
NDK_BINARIES=${ANDROID_NDK}-linux-x86_64.zip
|
||||
SDK_TOOLS=tools_${SDK_VERSION}-linux.zip
|
||||
else
|
||||
echo "only on Linux so far"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# download the Qt installer including Android bits and unpack / install
|
||||
QT_DOWNLOAD_URL=https://download.qt.io/archive/qt/${QT_VERSION}/${LATEST_QT}/${QT_BINARIES}
|
||||
if [ ! -f ${QT_BINARIES} ] ; then
|
||||
wget ${QT_DOWNLOAD_URL}
|
||||
echo "In the binary installer select $(pwd)/${LATEST_QT} as install directory"
|
||||
bash ./${QT_BINARIES}
|
||||
fi
|
||||
|
||||
[ -e Qt ] || ln -s Qt${LATEST_QT} Qt
|
||||
|
||||
# next we need to get the Android SDK and NDK
|
||||
if [ ! -d $ANDROID_NDK ] ; then
|
||||
if [ ! -f $NDK_BINARIES ] ; then
|
||||
echo "Please download the Android NDK $NDK_BINARIES from Google's servers and place it in this directory"
|
||||
exit
|
||||
fi
|
||||
unzip $NDK_BINARIES
|
||||
fi
|
||||
|
||||
if [ ! -d $ANDROID_SDK ] ; then
|
||||
if [ ! -f $SDK_TOOLS ] ; then
|
||||
echo "Please download the Android SDK $SDK_TOOLS from Google's servers and place it in this directory"
|
||||
exit
|
||||
fi
|
||||
mkdir $ANDROID_SDK
|
||||
pushd $ANDROID_SDK
|
||||
unzip ../$SDK_TOOLS
|
||||
bash tools/android update sdk --no-ui -a -t 1,2,3,33
|
||||
popd
|
||||
fi
|
||||
|
||||
# ok, now we have Qt, SDK, and NDK - let's get us some Subsurface
|
||||
if [ ! -d subsurface ] ; then
|
||||
git clone git://github.com/Subsurface-divelog/subsurface
|
||||
fi
|
||||
pushd subsurface
|
||||
git pull --rebase
|
||||
popd
|
||||
|
||||
if [ ! -d libdivecomputer ] ; then
|
||||
git clone -b Subsurface-branch git://github.com/Subsurface-divelog/libdc libdivecomputer
|
||||
pushd libdivecomputer
|
||||
autoreconf --install
|
||||
autoreconf --install
|
||||
popd
|
||||
fi
|
||||
pushd libdivecomputer
|
||||
git pull --rebase
|
||||
if ! git checkout Subsurface-branch ; then
|
||||
echo "can't check out the Subsurface-branch branch of libdivecomputer -- giving up"
|
||||
exit 1
|
||||
fi
|
||||
popd
|
||||
|
||||
|
||||
# and now we need a monotonic build number...
|
||||
if [ ! -f "./buildnr.dat" ] ; then
|
||||
BUILDNR=0
|
||||
else
|
||||
BUILDNR=$(cat ./buildnr.dat)
|
||||
fi
|
||||
BUILDNR=`expr ${BUILDNR} + 1`
|
||||
echo "${BUILDNR}" > ./buildnr.dat
|
||||
|
||||
echo "Building Subsurface-mobile ${VERSION} for Android, build nr ${BUILDNR} as Subsurface-mobile-$VERSION-${NAME}arm.apk"
|
||||
|
||||
if [ "$1" = "release" ] || [ "$1" = "Release" ] || [ "$1" = "debug" ] || [ "$1" = "Debug" ] ; then
|
||||
RELEASE=$1
|
||||
shift
|
||||
else
|
||||
RELEASE=Debug
|
||||
fi
|
||||
|
||||
rm -f ./subsurface-mobile-build-arm/bin/QtApp-debug.apk
|
||||
rm -d ./subsurface-mobile-build-arm/AndroidManifest.xml
|
||||
rm -d ./subsurface-mobile-build-arm/bin/AndroidManifest.xml
|
||||
bash $USE_X subsurface/packaging/android/build.sh $RELEASE -buildnr ${BUILDNR} arm $@
|
||||
|
Loading…
Reference in a new issue