summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-05 17:37:35 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-05 17:37:35 +0200
commit8818b1370c2e2b75ed23a398e39523c90bc2fd03 (patch)
tree77810cc471219386044a37f3a5b2e9f09f419023
parentd13a2ee5c6c972fafc14f68ffbe7cc81cde0f7c1 (diff)
downloadandroid-node-v8-8818b1370c2e2b75ed23a398e39523c90bc2fd03.tar.gz
android-node-v8-8818b1370c2e2b75ed23a398e39523c90bc2fd03.tar.bz2
android-node-v8-8818b1370c2e2b75ed23a398e39523c90bc2fd03.zip
android build files
-rwxr-xr-xbuild-android-node58
-rwxr-xr-xbuild-android-v847
2 files changed, 105 insertions, 0 deletions
diff --git a/build-android-node b/build-android-node
new file mode 100755
index 0000000000..f98f56926f
--- /dev/null
+++ b/build-android-node
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+set -eu -o pipefail
+
+scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+cd $scriptdir
+
+NDK=$1
+
+DEST_CPU_ARCH='arm'
+API_LEVEL=26
+BUILD_HOST_TAG='linux-x86_64'
+TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/
+
+if [[ ! -d "$NDK" ]]; then
+ echo "Android NDK directory '$NDK' invalid"
+ exit 1
+fi
+
+if [[ ! -d "$TOOLCHAIN_DIR" ]]; then
+ echo "Toolchain directory '$TOOLCHAIN_DIR' invalid"
+ exit 1
+fi
+
+# The naming of these isn't very consistent, as some tools start with arm,
+# others with arm7a.
+export AR=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ar
+export CC=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang
+export CXX=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++
+export LD=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ld
+export LINK=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++
+export RANLIB=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ranlib
+export STRIP=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-strip
+
+cd node
+
+export GYP_DEFINES="OS=android clang=1"
+
+function myconf() {
+ ./configure \
+ --dest-cpu=$DEST_CPU_ARCH \
+ --dest-os=android \
+ --without-snapshot \
+ --without-intl \
+ --openssl-no-asm \
+ --without-bundled-v8 \
+ --shared
+}
+
+if [ -z ${2+x} ]; then
+ myconf && make
+ cd $scriptdir
+ x=compiled/armeabi-v7a/
+ mkdir -p $x
+ cp node/out/Release/lib.target/libnode.so $x/
+else
+ eval $2
+fi
diff --git a/build-android-v8 b/build-android-v8
new file mode 100755
index 0000000000..9fa04cdcad
--- /dev/null
+++ b/build-android-v8
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+set -eu -o pipefail
+
+scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
+cd $scriptdir
+
+NDK=$1
+
+DEST_CPU_ARCH='arm'
+API_LEVEL=26
+BUILD_HOST_TAG='linux-x86_64'
+TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/
+
+if [[ ! -d "$NDK" ]]; then
+ echo "Android NDK directory '$NDK' invalid"
+ exit 1
+fi
+
+ln -fs $NDK ./deps/v8/third_party/android_ndk
+
+# We do not export anything about the tool chain, as v8
+# will pick their own toolchain for android from the ndk
+
+cd ./deps/v8
+
+python2 ./tools/node/fetch_deps.py $PWD
+
+mode=debug
+
+./tools/dev/v8gen.py arm.$mode -- \
+ 'target_os="android"' \
+ 'target_cpu="arm"' \
+ 'is_component_build=true' \
+ 'v8_android_log_stdout=true' \
+ 'v8_use_external_startup_data=false' \
+ 'v8_use_snapshot=true' \
+ 'v8_enable_debugging_features=true' \
+ 'v8_enable_embedded_builtins=true' \
+ 'is_clang=true'
+
+./_depot_tools/ninja -C out.gn/arm.$mode v8 d8
+
+cd $scriptdir
+x=android-compiled/armeabi-v7a/
+mkdir -p $x
+cp deps/v8/out.gn/arm.$mode/*.so $x/