153 lines
3.8 KiB
Bash
153 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
#rm -rf out
|
|
set -e
|
|
|
|
chromium_version="119.0.6045.172"
|
|
chromium_code="6045172"
|
|
chromium_rebrand_name="LeOSium"
|
|
chromium_rebrand_color="#7B3F00"
|
|
chromium_packageid_webview="com.leos.ium_wv"
|
|
chromium_packageid_standalone="com.leos.ium"
|
|
chromium_packageid_libtrichrome="com.leos.ium_tcl"
|
|
clean=0
|
|
gsync=1
|
|
supported_archs=(arm arm64 x86 x64)
|
|
|
|
usage() {
|
|
echo "Usage:"
|
|
echo " build_webview [ options ]"
|
|
echo
|
|
echo " Options:"
|
|
echo " -a <arch> Build specified arch"
|
|
echo " -c Clean"
|
|
echo " -h Show this message"
|
|
echo " -r <release> Specify chromium release"
|
|
echo " -s Sync"
|
|
echo
|
|
echo " Example:"
|
|
echo " bash 1_sync.sh -s 119.0.6045.172:6045172"
|
|
echo
|
|
exit 1
|
|
}
|
|
|
|
build() {
|
|
build_args=$args' target_cpu="'$1'"'
|
|
|
|
code=$chromium_code
|
|
if [ $1 '==' "arm" ]; then
|
|
code+=00
|
|
elif [ $1 '==' "arm64" ]; then
|
|
code+=50
|
|
#build_args+=' arm_control_flow_integrity="standard"'
|
|
elif [ $1 '==' "x86" ]; then
|
|
code+=10
|
|
elif [ $1 '==' "x64" ]; then
|
|
code+=60
|
|
fi
|
|
build_args+=' android_default_version_code="'$code'"'
|
|
|
|
gn gen "out/$1" --args="$build_args"
|
|
ninja -C out/$1 system_webview_apk chrome_public_apk
|
|
if [ "$?" -eq 0 ]; then
|
|
[ "$1" '==' "x64" ] && android_arch="x86_64" || android_arch=$1
|
|
cp out/$1/apks/SystemWebView.apk ../prebuilt/$android_arch/webview.apk
|
|
fi
|
|
}
|
|
|
|
while getopts ":a:chr:s" opt; do
|
|
case $opt in
|
|
a) for arch in ${supported_archs[@]}; do
|
|
[ "$OPTARG" '==' "$arch" ] && build_arch="$OPTARG"
|
|
done
|
|
if [ -z "$build_arch" ]; then
|
|
echo "Unsupported ARCH: $OPTARG"
|
|
echo "Supported ARCHs: ${supported_archs[@]}"
|
|
exit 1
|
|
fi
|
|
;;
|
|
c) clean=1 ;;
|
|
h) usage ;;
|
|
r) version=(${OPTARG//:/ })
|
|
chromium_version=${version[0]}
|
|
chromium_code=${version[1]}
|
|
;;
|
|
s) gsync=1 ;;
|
|
:)
|
|
echo "Option -$OPTARG requires an argument"
|
|
echo
|
|
usage
|
|
;;
|
|
\?)
|
|
echo "Invalid option:-$OPTARG"
|
|
echo
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
|
|
# Add depot_tools to PATH
|
|
if [ ! -d depot_tools ]; then
|
|
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
|
fi
|
|
export PATH="$(pwd -P)/depot_tools:$PATH"
|
|
|
|
if [ ! -d src ]; then
|
|
echo "Initial source download"
|
|
fetch android
|
|
yes | gclient sync -D -R -r $chromium_version
|
|
fi
|
|
|
|
if [ $gsync -eq 1 ]; then
|
|
echo "Syncing"
|
|
find src -name index.lock -delete
|
|
yes | gclient sync -D -R -f -r $chromium_version
|
|
fi
|
|
cd src
|
|
####################################
|
|
applyPatchReal() {
|
|
currentWorkingPatch=$1;
|
|
firstLine=$(head -n1 "$currentWorkingPatch");
|
|
if [[ "$firstLine" = *"Mon Sep 17 00:00:00 2001"* ]] || [[ "$firstLine" = *"Thu Jan 1 00:00:00 1970"* ]]; then
|
|
if git am "$@"; then
|
|
git format-patch -1 HEAD --zero-commit --no-signature --output="$currentWorkingPatch";
|
|
fi;
|
|
else
|
|
git apply "$@";
|
|
echo "Applying (as diff): $currentWorkingPatch";
|
|
fi;
|
|
}
|
|
export -f applyPatchReal;
|
|
|
|
applyPatch() {
|
|
currentWorkingPatch=$1;
|
|
if [ -f "$currentWorkingPatch" ]; then
|
|
if git apply --check "$@" &> /dev/null; then
|
|
applyPatchReal "$@";
|
|
else
|
|
if git apply --reverse --check "$@" &> /dev/null; then
|
|
echo "Already applied: $currentWorkingPatch";
|
|
else
|
|
if git apply --check "$@" --3way &> /dev/null; then
|
|
applyPatchReal "$@" --3way;
|
|
echo "Applied (as 3way): $currentWorkingPatch";
|
|
else
|
|
echo -e "\e[0;31mERROR: Cannot apply: $currentWorkingPatch\e[0m";
|
|
fi;
|
|
fi;
|
|
fi;
|
|
else
|
|
echo -e "\e[0;31mERROR: Patch doesn't exist: $currentWorkingPatch\e[0m";
|
|
fi;
|
|
}
|
|
export -f applyPatch;
|
|
echo 'End sync and standard patches'
|
|
|
|
echo 'icons'
|
|
cd ..
|
|
bash 3_icons.sh
|
|
cd src
|
|
|
|
#
|