summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkazer_ <kazer_@ffa7fe5e-494d-0410-b361-a75ebd5db220>2015-04-06 21:52:00 +0000
committerkazer_ <kazer_@ffa7fe5e-494d-0410-b361-a75ebd5db220>2015-04-06 21:52:00 +0000
commit0ea565a4b592d81228d44fde1d66785bfd80fef3 (patch)
tree8cc39c3b8f318040d3a2d25490ac86066cf8651e
parent30bcb605c13b8e73c297e7cbf9de4ac2f01e4546 (diff)
downloadnavit-0ea565a4b592d81228d44fde1d66785bfd80fef3.tar.gz
Add:CI:Added automatic android build
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@6051 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r--ci/build_android.sh142
-rw-r--r--circle.yml33
2 files changed, 173 insertions, 2 deletions
diff --git a/ci/build_android.sh b/ci/build_android.sh
new file mode 100644
index 000000000..76db88d11
--- /dev/null
+++ b/ci/build_android.sh
@@ -0,0 +1,142 @@
+#!/bin/bash
+red='\e[0;31m'
+grn='\e[0;32m'
+yel='\e[1;33m'
+off='\e[0m'
+
+# setup var's to perform environment setup and cmake
+export START_PATH=~/
+export SOURCE_PATH=$START_PATH"/"${CIRCLE_PROJECT_REPONAME}"/navit/"
+export CMAKE_FILE=$SOURCE_PATH"/Toolchain/arm-eabi.cmake"
+
+export NDK_SUFFIX="r10d"
+export ANDROID_NDK=$ANDROID_HOME"/android-ndk-"$NDK_SUFFIX
+export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin"
+
+export ANDROID_SDK=$ANDROID_HOME"/android-sdk-linux"
+export ANDROID_SDK_TOOLS=$ANDROID_SDK"/tools"
+export ANDROID_SDK_PLATFORM_TOOLS=$ANDROID_SDK"/platform-tools"
+
+export ANDROID_TOOLS_CHECK=$ANDROID_SDK"/tools"
+
+export ANDROID_PLATFORM_TOOLS_CHECK=$ANDROID_SDK"/platform-tools"
+
+export ANDROID_BUILD_TOOLS="21.1.2"
+export ANDROID_BUILD_CHECK=$ANDROID_SDK"/build-tools/"$BUILD_TOOLS
+
+export ANDROID_PLATFORM_LATEST="android-21"
+export ANDROID_PLATFORM_MIN="android-7"
+export ANDROID_PLATFORM_CHECK_MIN=$ANDROID_SDK"/platforms/"$ANDROID_PLATFORM_MIN"/images"
+export ANDROID_PLATFORM_CHECK_MAX=$ANDROID_SDK"/platforms/"$ANDROID_PLATFORM_LATEST"/images"
+
+export BUILD_PATH=$START_PATH"/android-build"
+export ANDROID_ENV=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS
+
+export SDK_ADD_FILTER="platform-tool,tools,build-tools-21.1.2,extra-android-m2repository,extra-android-support,android-10,sysimg-10,addon-google_apis-google-10,android-9,addon-google_apis-google-9,android-21,sysimg-21,addon-google_apis-google-21"
+
+export SDK_UPD_FILTER="platform-tool,tools,build-tools-21.1.2,extra-android-m2repository,extra-android-support"
+
+mkdir $ANDROID_HOME
+
+# If path already has our environment no need to set it
+if echo "$ANDROID_ENV" | grep -q "$PATH"; then
+ echo -e "${grn}" " Android PATH configuration... ALREADY SET" "${off}"
+ echo
+else
+ echo -e "${grn}" " Android PATH configuration... EXPORTED" "${off}"
+ export PATH=$ANDROID_ENV:$PATH
+ echo
+fi
+
+mkdir -p $BUILD_PATH
+
+function extractSDK {
+ echo -e -n "${yel}" " Unpacking Android SDK... "
+
+ cd $ANDROID_HOME
+
+ $(tar -xf $ANDROID_SDK_FILE -C $ANDROID_HOME)
+
+ if [ $? -eq 0 ]; then {
+ echo -e "${grn}" "SUCCEEDED" "${off}"
+ }
+ else
+ {
+ echo -e "${red}" "FAILED" "${off}"
+ exit 1
+ }
+ fi
+}
+
+function extractNDK {
+ echo -e -n "${yel}" " Unpacking Android NDK... "
+
+ cd $ANDROID_HOME
+ chmod +x ./android-ndk-r10d-linux-x86_64.bin
+ ./android-ndk-r10d-linux-x86_64.bin
+
+ if [ $? -eq 0 ]; then {
+ echo -e "${grn}" "SUCCEEDED" "${off}"
+ }
+ else
+ {
+ echo -e "${red}" "FAILED" "${off}"
+ exit 1
+ }
+ fi
+}
+
+
+if [ ! -d $ANDROID_SDK ]; then {
+ echo -e -n "${yel}" " Android SDK downloading... "
+ extractSDK
+}
+else {
+ echo -e "${grn}" " Android SDK Found " "${off}"
+}
+fi
+
+if [ ! -d $ANDROID_NDK_BIN ]; then {
+ echo -e -n "${yel}" " Android NDK downloading... "
+ extractNDK
+}
+else {
+ echo -e "${grn}" " Android NDK Found " "${off}"
+}
+fi
+
+function addSDK {
+ export ADD_SDK="echo y|android update sdk --no-ui --all --filter $SDK_ADD_FILTER"
+ $ADD_SDK
+}
+
+function updateSDK {
+ export UPD_SDK="echo y|android update sdk --no-ui --filter $SDK_UPD_FILTER"
+echo $UPD_SDK
+ $UPD_SDK
+}
+
+if [ ! -d $ANDROID_PLATFORM_CHECK_MIN ]; then {
+ echo -e -n "${yel}" " Android SDK Platform ... MISSING, downloading may take a very long time... "
+ echo y|android update sdk --no-ui --all --filter platform-tool,tools,build-tools-21.1.2,extra-android-m2repository,extra-android-support,android-10,sysimg-10,addon-google_apis-google-10,android-9,addon-google_apis-google-9,android-21,sysimg-21,addon-google_apis-google-21
+
+ echo -e "${grn}" "SUCCEEDED" "${off}"
+}
+else {
+ echo -e -n "${grn}" " Android SDK Platform ..." "${off}"
+ updateSDK
+ echo -e "${grn}" "VERIFIED" "${off}"
+}
+fi
+
+mkdir -p $BUILD_PATH
+cd $BUILD_PATH
+cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DANDROID_API_VERSION=9 $SOURCE_PATH
+make && make apkg || exit 1
+mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug.apk
+mv navit/android/bin/Navit-debug-unaligned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug-unaligned.apk
+make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-release-unsigned.apk
+
+echo
+echo "Build leftovers :"
+ls navit/android/bin/
diff --git a/circle.yml b/circle.yml
index 4f41d6ba9..b4a83b55a 100644
--- a/circle.yml
+++ b/circle.yml
@@ -1,4 +1,17 @@
+machine:
+ environment:
+ ANDROID_HOME: /home/ubuntu/android
+ ANDROID_NDK_HOME: /home/ubuntu/android/android-ndk
+ ANDROID_SDK_CDN: https://dl.google.com/android
+ ANDROID_SDK_FILE: android-sdk_r24.0.2-linux.tgz
+ ANDROID_NDK_CDN: http://dl.google.com/android/ndk
+ ANDROID_NDK_FILE: android-ndk-r10d-linux-x86_64.bin
+ CMAKE_FILE: ../Toolchain/arm-eabi.cmake
dependencies:
+ cache_directories:
+ - ~/.android
+ - ~/android
+ - "~/assets/"
pre:
- "[ -d ~/assets ] || mkdir ~/assets"
- wget -c -O ~/assets/cov-analysis-linux64-7.6.0.tar.gz http://sd-55475.dedibox.fr/cov-analysis-linux64-7.6.0.tar.gz
@@ -10,8 +23,24 @@ dependencies:
- sudo apt-get install libdbus-glib-1-dev
- sudo apt-get install g++
- bash ci/build.sh
- cache_directories:
- - "~/assets/"
+# Android build
+ - wget -c -N -q $ANDROID_SDK_CDN/$ANDROID_SDK_FILE -O $ANDROID_HOME/$ANDROID_SDK_FILE
+ - wget -c -N -q $ANDROID_NDK_CDN/$ANDROID_NDK_FILE -O $ANDROID_HOME/$ANDROID_NDK_FILE
+ - sudo apt-get install gpsd
+ - sudo apt-get install gpsd-clients
+ - sudo apt-get install libgps-dev
+ - sudo apt-get install freeglut3-dev
+ - sudo apt-get install libxft-dev
+ - sudo apt-get install libglib2.0-dev
+ - sudo apt-get install libfreeimage-dev
+ - sudo apt-get install gettext
+ - sudo apt-get install openjdk-7-jdk
+ - sudo apt-get install ant
+ - sudo apt-get install libsaxonb-java
+# for aapt
+ - sudo apt-get install lib32stdc++6
+ - sudo apt-get install lib32z1
+ - bash ci/build_apk.sh
test:
post:
- sed -i -e 's@name="Local GPS" profilename="car" enabled="yes" active="1"@name="Local GPS" profilename="car" enabled="no" active="0"@' navit.xml: