build.sh
3.7 KB
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
[ -z $ROOT_DIR ] && ROOT_DIR=$HOME
echo "Using ROOT_DIR=\"$ROOT_DIR\""
[ -z $DALI_DIR ] && DALI_DIR=$(cd ../../../;pwd)
echo "Using DALI_DIR=\"$DALI_DIR\""
export DALI_DIR=$DALI_DIR
[ -z $DALI_ENV_DIR ] && DALI_ENV_DIR=$DALI_DIR/dali-env/android
echo "Using DALI_ENV_DIR=\"$DALI_ENV_DIR\""
export DALI_ENV_DIR=$DALI_ENV_DIR
[ -z $TARGET ] && export TARGET=armeabi-v7a
echo "Using TARGET=\"$TARGET\""
if [ ! -z $http_proxy ]
then
proxyFull=${http_proxy/http:\/\/}
proxyHost=$(echo $proxyFull | cut -d: -f 1)
proxyPort=$(echo $proxyFull | cut -d: -f 2)
SdbProxyOptions="--proxy=http --proxy_host=$proxyHost --proxy_port=$proxyPort"
echo "Proxy detected Host:$proxyHost Port:$proxyPort"
fi
if [ ! -d "$ANDROID_SDK" ]; then
if [ ! -d "$ROOT_DIR/Android/Sdk" ]; then
mkdir -p "$ROOT_DIR/Android/Sdk"
cd "$ROOT_DIR/Android/Sdk"
wget --quiet https://developer.android.com/studio/index.html
if [ ! -f index.html ]; then echo ERROR: Unable to get Android Tools Version; exit 1; fi
androidCommandLineToolsPkgUrl=$(cat index.html | grep "commandlinetools-linux-" | grep href | cut -d\" -f 2)
androidCommandLineToolsPkgName=$(echo $androidCommandLineToolsPkgUrl | rev | cut -d\/ -f 1 | rev)
echo "Downloading Android Command Line Tools from: $androidCommandLineToolsPkgUrl"
wget --quiet $androidCommandLineToolsPkgUrl
echo "Unzipping $androidCommandLineToolsPkgName"
unzip -q $androidCommandLineToolsPkgName
SDK_MANAGER="$ROOT_DIR/Android/Sdk/cmdline-tools/bin/sdkmanager --sdk_root=$ROOT_DIR/Android/Sdk $SdbProxyOptions"
$SDK_MANAGER --update
yes | $SDK_MANAGER "platform-tools" "platforms;android-30" "build-tools;33.0.1" "cmake;3.22.1" "ndk-bundle" "ndk;25.1.8937393"
cd -
fi
fi
if [ ! -d "$ANDROID_SDK" ]; then
# try default path
if [ -d "$ROOT_DIR/Android/Sdk" ]; then
export ANDROID_SDK=$ROOT_DIR/Android/Sdk
fi
fi
if [ ! -d "$ANDROID_NDK" ]; then
if [ -d "$ANDROID_SDK" ]; then
NDK_DIR=$(find $ANDROID_SDK -maxdepth 2 -name ndk-build | sed 's/\/ndk-build//')
# Some sdk folder structures have extra <version> dir for ndk folders.
if [ ! -d "$NDK_DIR" ]; then
NDK_DIR=$(find $ANDROID_SDK -maxdepth 3 -name ndk-build | sed 's/\/ndk-build//')
fi
if [ -d "$NDK_DIR" ]; then
export ANDROID_NDK=$NDK_DIR
fi
fi
fi
GRADLE_VERSION=8.3
if [ ! -d "$ROOT_DIR/gradle/gradle-$GRADLE_VERSION" ]; then
mkdir -p $ROOT_DIR/gradle
cd $ROOT_DIR/gradle
wget --quiet https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip
unzip -q gradle-$GRADLE_VERSION-bin.zip
cd -
fi
GRADLE_PROPERTIES_FILE=gradle.properties
if [ ! -f $GRADLE_PROPERTIES_FILE ]
then
echo "org.gradle.jvmargs=-Xmx1536m" > $GRADLE_PROPERTIES_FILE
echo "android.useAndroidX=true" >> $GRADLE_PROPERTIES_FILE
if [ ! -z $http_proxy ]
then
echo "systemProp.http.proxyHost=$proxyHost" >> $GRADLE_PROPERTIES_FILE
echo "systemProp.http.proxyPort=$proxyPort" >> $GRADLE_PROPERTIES_FILE
if [ ! -z $https_proxy ]
then
httpsProxyFull=$https_proxy
httpsProxyFull=${httpsProxyFull/https:\/\/}
httpsProxyFull=${httpsProxyFull/http:\/\/}
httpsProxyHost=$(echo $httpsProxyFull | cut -d: -f 1)
httpsProxyPort=$(echo $httpsProxyFull | cut -d: -f 2)
echo "systemProp.https.proxyHost=$httpsProxyHost" >> $GRADLE_PROPERTIES_FILE
echo "systemProp.https.proxyPort=$httpsProxyPort" >> $GRADLE_PROPERTIES_FILE
fi
fi
fi
export PATH=$PATH:$ROOT_DIR/gradle/gradle-$GRADLE_VERSION/bin
[ ! -f local.properties ] && echo 'sdk.dir='$(echo $ANDROID_SDK) > local.properties
gradle wrapper || exit 1
if [ "$1" = "clean" ]; then
./gradlew clean
else
if [ -z "$DEBUG" ]; then
./gradlew assembleRelease
else
./gradlew assembleDebug
fi
fi