Files
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

132 lines
4.9 KiB
Bash

#!/bin/bash
SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd "$SCRIPTPATH"
if [ ! -d "depot_tools" ]
then
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
fi
export PATH=`pwd`/depot_tools:"$PATH"
fix_build_gn()
{
cp ./BUILD.gn ./BUILD.gn.old
rm ./BUILD.gn
# wrap action("run_mksnapshot") & v8_source_set("v8_snapshot")
counter=0
input="./BUILD.gn.old"
while IFS= read -r line
do
echo "$line" >> ./BUILD.gn
counter=$((counter+1))
if [ "$counter" -eq "715" ];then
echo "if (v8_use_snapshot) {" >> ./BUILD.gn
fi
if [ "$counter" -eq "765" ];then
echo "}" >> ./BUILD.gn
fi
if [ "$counter" -eq "831" ];then
echo "if (v8_use_snapshot) {" >> ./BUILD.gn
fi
if [ "$counter" -eq "861" ];then
echo "}" >> ./BUILD.gn
fi
done < "$input"
}
restore_build_gn()
{
rm ./BUILD.gn
cp ./BUILD.gn.old ./BUILD.gn
}
if [ ! -d "v8" ]
then
./depot_tools/fetch v8
cd v8
git checkout -b 6.0 branch-heads/6.0
echo "target_os= ['android']">>./../.gclient
echo y | sudo ./build/install-build-deps-android.sh
gclient sync --verbose
cd ../
fi
cd v8
toolchains_dir=./../archive-tools
libs_dir=./../build
deploy_toolchain()
{
#api_check=$1
#api_version=16
#arm_detect=${api_check:0:3}
#if [ "$arm_detect" = "arm" ]; then
# api_version=21
#fi
api_version=21
echo "toolshain: --arch=$1 --api=$api_version"
#./third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --install-dir=$toolchains_dir/$1 --arch=$1 --platform=android-${api_version} --stl=libc++
./third_party/android_tools/ndk/build/tools/make_standalone_toolchain.py --install-dir=$toolchains_dir/$1 --arch=$1 --stl=libc++ --api=${api_version}
}
deploy_libs()
{
mkdir $2
$1 -rcsD $2/libv8_base.a $3/obj/v8_base/*.o $3/obj/v8_builtins_setup/*.o $3/obj/v8_builtins_generators/*.o
$1 -rcsD $2/libv8_libbase.a $3/obj/v8_libbase/*.o
$1 -rcsD $2/libv8_libsampler.a $3/obj/v8_libsampler/*.o
$1 -rcsD $2/libv8_libplatform.a $3/obj/v8_libplatform/*.o
$1 -rcsD $2/libv8_nosnapshot.a $3/obj/v8_nosnapshot/*.o
$1 -rcsD $2/libicuuc.a $3/obj/third_party/icu/icuuc/*.o
$1 -rcsD $2/libicui18n.a $3/obj/third_party/icu/icui18n/*.o
cp $3/icudtl.dat $2/icudtl.dat
}
rm -rf $toolchains_dir
mkdir $toolchains_dir
rm -rf $libs_dir
mkdir $libs_dir
fix_build_gn
echo "BUILD: arm64 ----------------------------------------"
gn gen out.gn/android/arm64 "--args=is_component_build=false is_clang=false is_debug=false use_sysroot=true target_os=\"android\" target_cpu=\"arm64\" v8_target_cpu=\"arm64\" v8_enable_i18n_support=true v8_static_library=true v8_use_snapshot=false clang_use_chrome_plugins=false android_ndk_version=\"21.1.6352462\" android_sdk_version=\"21\""
ninja -C out.gn/android/arm64
echo "ARCHIVE: arm64 --------------------------------------"
deploy_toolchain arm64
deploy_libs $toolchains_dir/arm64/bin/aarch64-linux-android-ar $libs_dir/arm64-v8a ./out.gn/android/arm64
echo "BUILD: arm ------------------------------------------"
gn gen out.gn/android/arm "--args=is_component_build=false is_clang=false is_debug=false use_sysroot=true target_os=\"android\" target_cpu=\"arm\" v8_target_cpu=\"arm\" v8_enable_i18n_support=true v8_static_library=true v8_use_snapshot=false clang_use_chrome_plugins=false android_ndk_version=\"21.1.6352462\" android_sdk_version=\"21\""
ninja -C out.gn/android/arm
echo "ARCHIVE: arm ----------------------------------------"
deploy_toolchain arm
deploy_libs $toolchains_dir/arm/bin/arm-linux-androideabi-ar $libs_dir/armeabi-v7a ./out.gn/android/arm
echo "BUILD: x86_64 ---------------------------------------"
gn gen out.gn/android/x86_64 "--args=is_component_build=false is_clang=false is_debug=false use_sysroot=true target_os=\"android\" target_cpu=\"x64\" v8_target_cpu=\"x64\" v8_enable_i18n_support=true v8_static_library=true v8_use_snapshot=false clang_use_chrome_plugins=false android_ndk_version=\"21.1.6352462\" android_sdk_version=\"16\""
ninja -C out.gn/android/x86_64
echo "ARCHIVE: x86_64 -------------------------------------"
deploy_toolchain x86_64
deploy_libs $toolchains_dir/x86_64/bin/x86_64-linux-android-ar $libs_dir/x86_64 ./out.gn/android/x86_64
echo "BUILD: x86 ------------------------------------------"
gn gen out.gn/android/x86 "--args=is_component_build=false is_clang=false is_debug=false use_sysroot=true target_os=\"android\" target_cpu=\"x86\" v8_target_cpu=\"x86\" v8_enable_i18n_support=true v8_static_library=true v8_use_snapshot=false clang_use_chrome_plugins=false android_ndk_version=\"21.1.6352462\" android_sdk_version=\"16\""
ninja -C out.gn/android/x86
echo "ARCHIVE: x86 ----------------------------------------"
deploy_toolchain x86
deploy_libs $toolchains_dir/x86/bin/i686-linux-android-ar $libs_dir/x86 ./out.gn/android/x86
restore_build_gn
cd ../