[dali_2.3.25] Merge branch 'devel/master'
[platform/core/uifw/dali-demo.git] / build / android / build.sh
1 [ -z $ROOT_DIR ] && ROOT_DIR=$HOME
2 echo "Using ROOT_DIR=\"$ROOT_DIR\""
3
4 [ -z $DALI_DIR ] && DALI_DIR=$(cd ../../../;pwd)
5 echo "Using DALI_DIR=\"$DALI_DIR\""
6 export DALI_DIR=$DALI_DIR
7
8 [ -z $DALI_ENV_DIR ] && DALI_ENV_DIR=$DALI_DIR/dali-env/android
9 echo "Using DALI_ENV_DIR=\"$DALI_ENV_DIR\""
10 export DALI_ENV_DIR=$DALI_ENV_DIR
11
12 [ -z $TARGET ] && export TARGET=armeabi-v7a
13 echo "Using TARGET=\"$TARGET\""
14
15 if [ ! -z $http_proxy ]
16 then
17   proxyFull=${http_proxy/http:\/\/}
18   proxyHost=$(echo $proxyFull | cut -d: -f 1)
19   proxyPort=$(echo $proxyFull | cut -d: -f 2)
20   SdbProxyOptions="--proxy=http --proxy_host=$proxyHost --proxy_port=$proxyPort"
21   echo "Proxy detected Host:$proxyHost Port:$proxyPort"
22 fi
23
24 if [ ! -d "$ANDROID_SDK" ]; then
25   if [ ! -d "$ROOT_DIR/Android/Sdk" ]; then
26     mkdir -p "$ROOT_DIR/Android/Sdk"
27     cd "$ROOT_DIR/Android/Sdk"
28     wget --quiet https://developer.android.com/studio/index.html
29     if [ ! -f index.html ]; then echo ERROR: Unable to get Android Tools Version; exit 1; fi
30
31     androidCommandLineToolsPkgUrl=$(cat index.html | grep "commandlinetools-linux-" | grep href | cut -d\" -f 2)
32     androidCommandLineToolsPkgName=$(echo $androidCommandLineToolsPkgUrl | rev | cut -d\/ -f 1 | rev)
33     echo "Downloading Android Command Line Tools from: $androidCommandLineToolsPkgUrl"
34     wget --quiet $androidCommandLineToolsPkgUrl
35     echo "Unzipping $androidCommandLineToolsPkgName"
36     unzip -q $androidCommandLineToolsPkgName
37     SDK_MANAGER="$ROOT_DIR/Android/Sdk/cmdline-tools/bin/sdkmanager --sdk_root=$ROOT_DIR/Android/Sdk $SdbProxyOptions"
38     $SDK_MANAGER --update
39     yes | $SDK_MANAGER "platform-tools" "platforms;android-30" "build-tools;33.0.1" "cmake;3.22.1" "ndk-bundle" "ndk;25.1.8937393"
40     cd -
41   fi
42 fi
43
44 if [ ! -d "$ANDROID_SDK" ]; then
45 # try default path
46   if [ -d "$ROOT_DIR/Android/Sdk" ]; then
47     export ANDROID_SDK=$ROOT_DIR/Android/Sdk
48   fi
49 fi
50
51 if [ ! -d "$ANDROID_NDK" ]; then
52   if [ -d "$ANDROID_SDK" ]; then
53     NDK_DIR=$(find $ANDROID_SDK -maxdepth 2 -name ndk-build | sed 's/\/ndk-build//')
54     # Some sdk folder structures have extra <version> dir for ndk folders.
55     if [ ! -d "$NDK_DIR" ]; then
56       NDK_DIR=$(find $ANDROID_SDK -maxdepth 3 -name ndk-build | sed 's/\/ndk-build//')
57     fi
58     if [ -d "$NDK_DIR" ]; then
59       export ANDROID_NDK=$NDK_DIR
60     fi
61   fi
62 fi
63
64 GRADLE_VERSION=8.3
65 if [ ! -d "$ROOT_DIR/gradle/gradle-$GRADLE_VERSION" ]; then
66   mkdir -p $ROOT_DIR/gradle
67   cd $ROOT_DIR/gradle
68   wget --quiet https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip
69   unzip -q gradle-$GRADLE_VERSION-bin.zip
70   cd -
71 fi
72
73 GRADLE_PROPERTIES_FILE=gradle.properties
74 if [ ! -f $GRADLE_PROPERTIES_FILE ]
75 then
76   echo "org.gradle.jvmargs=-Xmx1536m" > $GRADLE_PROPERTIES_FILE
77   echo "android.useAndroidX=true" >> $GRADLE_PROPERTIES_FILE
78   if [ ! -z $http_proxy ]
79   then
80     echo "systemProp.http.proxyHost=$proxyHost" >> $GRADLE_PROPERTIES_FILE
81     echo "systemProp.http.proxyPort=$proxyPort" >> $GRADLE_PROPERTIES_FILE
82
83     if [ ! -z $https_proxy ]
84     then
85       httpsProxyFull=$https_proxy
86       httpsProxyFull=${httpsProxyFull/https:\/\/}
87       httpsProxyFull=${httpsProxyFull/http:\/\/}
88       httpsProxyHost=$(echo $httpsProxyFull | cut -d: -f 1)
89       httpsProxyPort=$(echo $httpsProxyFull | cut -d: -f 2)
90       echo "systemProp.https.proxyHost=$httpsProxyHost" >> $GRADLE_PROPERTIES_FILE
91       echo "systemProp.https.proxyPort=$httpsProxyPort" >> $GRADLE_PROPERTIES_FILE
92     fi
93   fi
94 fi
95
96 export PATH=$PATH:$ROOT_DIR/gradle/gradle-$GRADLE_VERSION/bin
97 [ ! -f local.properties ] && echo 'sdk.dir='$(echo $ANDROID_SDK) > local.properties
98
99 gradle wrapper || exit 1
100 if [ "$1" = "clean" ]; then
101   ./gradlew clean
102 else
103   if [ -z "$DEBUG" ]; then
104     ./gradlew assembleRelease
105   else
106     ./gradlew assembleDebug
107   fi
108 fi
109