Contains the Google's V8 build used in android runtime.
- get depot tools more :
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
- Make sure you have these packages installed (Linux only)
sudo apt-get install curl libc6-dev-i386 g++-multilib
- Download and extract Android NDK r22b
Linux:
curl -O https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip
unzip android-ndk-r22b-linux-x86_64.zip -d ndkr22b
- Export ANDROID_NDK_HOME environment variable
export ANDROID_NDK_HOME=`pwd`/ndkr22b/android-ndk-r22b
-
fetch v8
(this will create av8
repo folder and add a.gclient
file) -
Add
target_os
to the.gclient
file:
This will ensure that the required build dependencies are fetched by depot_tools
solutions = [
{
"url": "https://chromium.googlesource.com/v8/v8.git",
"managed": False,
"name": "v8",
"deps_file": "DEPS",
"custom_deps": {},
},
]
target_os = ['android']
- checkout tag 9.7.106.13
cd v8
git checkout 9.7.106.13
- Run sync
gclient sync
- Create symlinks
cp third_party/android_ndk/BUILD.gn $ANDROID_NDK_HOME
rm -rf third_party/android_tools third_party/android_ndk
mkdir third_party/android_tools
ln -s $ANDROID_NDK_HOME third_party/android_tools/ndk
ln -s $ANDROID_NDK_HOME third_party/android_ndk
- Apply patch running the following command
cd ..
./apply_patch.sh
- run the following command in the root folder command
cd ..
./build.sh
you can run:
../build_v8 debug
if you want to build v8 in debug, by default it's built in release.
The output folder is called dist
and it's created at v8
root level.
git diff --cached > patch.diff
- Copy the files from the v8/dist folder in the corresponding folder in android-runtime
- Copy the files from the v8/buildtools/third_party/libc++/trunk/include (libc++) into android-runtime/test-app/runtime/src/main/cpp/include/libc++
- Update the v8-versions.json file in the android-runtime root folder
- Update the settings.json file in android-runtime/build-artifacts/project-template-gradle
- Replace all the needed header and inspector files in the repo. The following article might be helpful