mirror of
https://github.com/NoCrypt/migu.git
synced 2026-03-11 17:45:32 +00:00
54 lines
No EOL
2.1 KiB
Bash
54 lines
No EOL
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# instructions
|
|
# Install Android NDK
|
|
# Set $ANDROID_NDK_PATH (example: ~/Android/Sdk/ndk/26.1.10909125)
|
|
# Download and extract android .zip for nodejs-mobile from https://github.com/nodejs-mobile/nodejs-mobile/releases/tag/v18.17.2
|
|
# Update LIBNODE_PATH
|
|
# npm install nodejs-mobile-gyp
|
|
# install other npm packages like normal
|
|
# run this script
|
|
|
|
if [ -d "node_modules" ]; then
|
|
echo "node_modules already exists, skipping npm install"
|
|
else
|
|
npm install
|
|
fi
|
|
|
|
toolchain_folder=$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin
|
|
export PATH=$toolchain_folder:$PATH
|
|
|
|
toolchain_target_archs=(armv7a aarch64 x86_64)
|
|
node_target_arch=(arm arm64 x64)
|
|
android_api_levels=(eabi24 "24" "24")
|
|
|
|
for ((i=0;i<${#toolchain_target_archs[@]};i++)); do
|
|
toolchain_target_arch=${toolchain_target_archs[i]}
|
|
node_target_arch=${node_target_arch[i]}
|
|
android_api_level=${android_api_levels[i]}
|
|
|
|
export CC=$toolchain_folder/${toolchain_target_arch}-linux-android${android_api_level}-clang
|
|
export CXX=$toolchain_folder/${toolchain_target_arch}-linux-android${android_api_level}-clang++
|
|
export LINK=$toolchain_folder/${toolchain_target_arch}-linux-android${android_api_level}-clang++
|
|
export AR=$toolchain_folder/llvm-ar
|
|
|
|
export npm_config_verbose=1
|
|
export npm_config_nodedir=${LIBNODE_PATH}
|
|
export npm_config_node_gyp=$(pwd)/node_modules/nodejs-mobile-gyp/bin/node-gyp.js
|
|
export npm_config_arch=${node_target_arch}
|
|
export npm_config_plaform=android
|
|
export npm_config_format=make-android
|
|
export npm_gyp_defines="target_arch=$node_target_arch v8_target_arch=$node_target_arch android_target_arch=$node_target_arch host_os=linux OS=android"
|
|
|
|
# --from-from-source is used by node-pre-gyp
|
|
echo "Rebuilding for $node_target_arch"
|
|
npm rebuild --build-from-source
|
|
|
|
for file in node_modules/*/build/Release/*.node; do
|
|
package=$(echo "$file" | cut -f 2 -d "/")
|
|
echo "moving prebuild for $package ($file)"
|
|
mkdir "node_modules/$package/prebuilds/android-$node_target_arch"
|
|
mv $file "node_modules/$package/prebuilds/android-$node_target_arch/node.napi.node"
|
|
rm -r "node_modules/$package/build/"
|
|
done
|
|
done |