summaryrefslogtreecommitdiff
path: root/ci/build_android.sh
blob: 968765f28e7b81f09534e90adeb7732e591c7541 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/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}"/"
export CMAKE_FILE=$SOURCE_PATH"/Toolchain/arm-eabi.cmake"

export ANDROID_NDK="/usr/local/android-ndk/"
export ANDROID_NDK_BIN=$ANDROID_NDK"/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin"
 
export ANDROID_SDK="/usr/local/android-sdk-linux/"
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.0.1,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.0.1,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

#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

updateSDK
mkdir -p $BUILD_PATH
cd $BUILD_PATH
export PATH=$ANDROID_NDK_BIN:$ANDROID_SDK_TOOLS:$ANDROID_SDK_PLATFORM_TOOLS:$PATH
android list targets
svn_rev=` cd ~/navit/; git log -1|grep git-svn-id:|cut -c 65-68`
if [[ "$svn_rev" == "" ]]; then svn_rev="0"; fi
sed -i -e "s/ANDROID_VERSION_INT=\"0\"/ANDROID_VERSION_INT=\"${svn_rev}\"/g" ~/navit/navit/android/CMakeLists.txt
cp ~/navit/navit/android/CMakeLists.txt $CIRCLE_ARTIFACTS/

cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_FILE -DCACHE_SIZE='(20*1024*1024)' -DAVOID_FLOAT=1 -DANDROID_API_VERSION=19 $SOURCE_PATH
make || exit 1
if [[ "${CIRCLE_BRANCH}" == "master" ]]; then
  make apkg-release && mv navit/android/bin/Navit-release-unsigned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-release-unsigned.apk
else
  make apkg && mv navit/android/bin/Navit-debug.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug.apk
fi
#mv navit/android/bin/Navit-debug-unaligned.apk $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug-unaligned.apk

echo $CIRCLE_ARTIFACTS/navit-$CIRCLE_SHA1-debug.apk

echo
echo "Build leftovers :"
ls navit/android/bin/