-
-
Notifications
You must be signed in to change notification settings - Fork 154
/
build_android.sh
executable file
·139 lines (119 loc) · 4.33 KB
/
build_android.sh
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
#!/bin/bash
# Copyright (c) 2024 Alex313031.
YEL='\033[1;33m' # Yellow
CYA='\033[1;96m' # Cyan
RED='\033[1;31m' # Red
GRE='\033[1;32m' # Green
c0='\033[0m' # Reset Text
bold='\033[1m' # Bold Text
underline='\033[4m' # Underline Text
# Error handling
yell() { echo "$0: $*" >&2; }
die() { yell "$*"; exit 111; }
try() { "$@" || die "${RED}Failed $*"; }
# --help
displayHelp () {
printf "\n" &&
printf "${bold}${GRE}Script to build Thorium for Android.${c0}\n" &&
printf "${underline}${YEL}Usage:${c0}${bold} build_android.sh --arm32 | --arm64 | --x86 | --x64 # (where # is number of jobs)${c0}\n" &&
printf " Use the --help flag to show this help.${c0}\n" &&
printf "\n"
}
case $1 in
--help) displayHelp; exit 0;;
esac
# chromium/src dir env variable
if [ -z "${CR_DIR}" ]; then
CR_SRC_DIR="$HOME/chromium/src"
export CR_SRC_DIR
else
CR_SRC_DIR="${CR_DIR}"
export CR_SRC_DIR
fi
cr_build_jobs="$2"
export cr_build_jobs
printf "\n" &&
printf "${bold}${GRE}Script to build Thorium for Android.${c0}\n" &&
printf "${underline}${YEL}Usage:${c0}${bold} build_android.sh --arm32 | --arm64 | --x86 | --x64 # (where # is number of jobs)${c0}\n" &&
printf " Use the --help flag to show this help.${c0}\n" &&
buildARM32 () {
printf "\n" &&
printf "${YEL}Building Thorium for Android arm32...\n" &&
printf "${YEL}Note: You may want ADB installed.${c0}\n" &&
printf "${CYA}\n" &&
# Build Thorium, Thorium Shell, and System WebView32
export NINJA_SUMMARIZE_BUILD=1 &&
export NINJA_STATUS="[%r processes, %f/%t @ %o/s | %e sec. ] " &&
cd ${CR_SRC_DIR} &&
autoninja -C out/thorium chrome_public_apk content_shell_apk system_webview_apk -j${cr_build_jobs} &&
printf "\n" &&
cat ~/thorium/logos/thorium_logo_ascii_art.txt &&
printf "\n" &&
printf "${GRE}${bold}Build Completed. ${YEL}${bold}You can copy the .apk(s) to your device or use ADB to install it.\n" &&
printf "${GRE}${bold}They are located in \'//chromium/src/out/thorium/apks/\'\n" &&
printf "\n"
}
case $1 in
--arm32) buildARM32;
esac
buildARM64 () {
printf "\n" &&
printf "${YEL}Building Thorium for Android arm64...\n" &&
printf "${YEL}Note: You may want ADB installed.${c0}\n" &&
printf "${CYA}\n" &&
# Build Thorium, Thorium Shell, and System WebView64
export NINJA_SUMMARIZE_BUILD=1 &&
export NINJA_STATUS="[%r processes, %f/%t @ %o/s | %e sec. ] " &&
cd ${CR_SRC_DIR} &&
autoninja -C out/thorium chrome_public_apk content_shell_apk system_webview_64_apk -j${cr_build_jobs} &&
printf "\n" &&
cat ~/thorium/logos/thorium_logo_ascii_art.txt &&
printf "\n" &&
printf "${GRE}${bold}Build Completed. ${YEL}${bold}You can copy the .apk(s) to your device or use ADB to install it.\n" &&
printf "${GRE}${bold}They are located in \'//chromium/src/out/thorium/apks/\'\n" &&
printf "\n"
}
case $1 in
--arm64) buildARM64;
esac
buildX86 () {
printf "\n" &&
printf "${YEL}Building Thorium for Android x86...\n" &&
printf "${YEL}Note: You may want ADB installed.${c0}\n" &&
printf "${CYA}\n" &&
# Build Thorium, Thorium Shell, and System WebView x86
export NINJA_SUMMARIZE_BUILD=1 &&
export NINJA_STATUS="[%r processes, %f/%t @ %o/s | %e sec. ] " &&
cd ${CR_SRC_DIR} &&
autoninja -C out/thorium chrome_public_apk content_shell_apk system_webview_apk -j${cr_build_jobs} &&
printf "\n" &&
cat ~/thorium/logos/thorium_logo_ascii_art.txt &&
printf "\n" &&
printf "${GRE}${bold}Build Completed. ${YEL}${bold}You can copy the .apk(s) to your device or use ADB to install it.\n" &&
printf "${GRE}${bold}They are located in \'//chromium/src/out/thorium/apks/\'\n" &&
printf "\n"
}
case $1 in
--x86) buildX86;
esac
buildX64 () {
printf "\n" &&
printf "${YEL}Building Thorium for Android x64...\n" &&
printf "${YEL}Note: You may want ADB installed.${c0}\n" &&
printf "${CYA}\n" &&
# Build Thorium, Thorium Shell, and System WebView x86
export NINJA_SUMMARIZE_BUILD=1 &&
export NINJA_STATUS="[%r processes, %f/%t @ %o/s | %e sec. ] " &&
cd ${CR_SRC_DIR} &&
autoninja -C out/thorium chrome_public_apk content_shell_apk system_webview_apk -j${cr_build_jobs} &&
printf "\n" &&
cat ~/thorium/logos/thorium_logo_ascii_art.txt &&
printf "\n" &&
printf "${GRE}${bold}Build Completed. ${YEL}${bold}You can copy the .apk(s) to your device or use ADB to install it.\n" &&
printf "${GRE}${bold}They are located in \'//chromium/src/out/thorium/apks/\'\n" &&
printf "\n"
}
case $1 in
--x64) buildX64;
esac
tput sgr0