https://github.com/nativescript/android-v8
Contains the Google's V8 build used in android runtime.
https://github.com/nativescript/android-v8
Last synced: about 1 month ago
JSON representation
Contains the Google's V8 build used in android runtime.
- Host: GitHub
- URL: https://github.com/nativescript/android-v8
- Owner: NativeScript
- Created: 2015-01-12T14:02:21.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-12-17T15:57:25.000Z (almost 4 years ago)
- Last Synced: 2024-10-29T15:51:55.345Z (about 1 year ago)
- Language: Shell
- Size: 37.6 MB
- Stars: 56
- Watchers: 30
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# android-v8
Contains the Google's V8 build used in android runtime.
### How to build (linux)
* get depot tools [more](https://www.chromium.org/developers/how-tos/install-depot-tools) :
```
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 a `v8` 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.
### Outputs
The output folder is called `dist` and it's created at `v8` root level.
### HOW TO CREATE A NEW PATCH file
git diff --cached > patch.diff
### What to do next
* Copy the files from the **v8/dist** folder in the corresponding folder in [android-runtime](https://github.com/NativeScript/android-runtime/tree/master/test-app/runtime/src/main/libs)
* Copy the files from the **v8/buildtools/third_party/libc++/trunk/include** (libc++) into [android-runtime/test-app/runtime/src/main/cpp/include/libc++](https://github.com/NativeScript/android-runtime/tree/master/test-app/runtime/src/main/cpp/include/libc++)
* Update the **v8-versions.json** file in the [android-runtime root folder](https://github.com/NativeScript/android-runtime/blob/master/v8-versions.json)
* Update the **settings.json** file in [android-runtime/build-artifacts/project-template-gradle](https://github.com/NativeScript/android-runtime/tree/master/build-artifacts/project-template-gradle/settings.json)
* Replace all the needed header and inspector files in the repo. The following [article](https://github.com/NativeScript/android-runtime/blob/master/docs/extending-inspector.md) might be helpful