xref: /expo/buildAndroidTarballLocally.sh (revision be238206)
1503d9a4aSNick Novitski#!/usr/bin/env bash
2503d9a4aSNick Novitski
3503d9a4aSNick Novitskiset -xeo pipefail
4503d9a4aSNick Novitski
5503d9a4aSNick NovitskiROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
6503d9a4aSNick NovitskiARTIFACTS_DIR="$ROOT_DIR/artifacts"
7503d9a4aSNick NovitskiTEMP_DIR="/tmp/android-shell-app"
8503d9a4aSNick Novitski
9503d9a4aSNick Novitskimkdir -p $ARTIFACTS_DIR
10503d9a4aSNick Novitskirm -rf $TEMP_DIR
11503d9a4aSNick Novitskimkdir -p $TEMP_DIR
12*7820a3eeSStanisław Chmiela
13*7820a3eeSStanisław Chmiela# we use the root android project as a shell app template
14503d9a4aSNick Novitskiln -s ${ROOT_DIR}/android $TEMP_DIR/android
15*7820a3eeSStanisław Chmiela# We wouldn't want to use any versioned ABI in a standalone app
16*7820a3eeSStanisław Chmiela# and it makes the shell app smaller.
17*7820a3eeSStanisław Chmielarm -rf $TEMP_DIR/android/versioned-abis
18*7820a3eeSStanisław Chmiela
19*7820a3eeSStanisław Chmiela# root package.json defines a dependency on react-native-unimodules,
20*7820a3eeSStanisław Chmiela# which we require when building the shell app
21503d9a4aSNick Novitskiln -s ${ROOT_DIR}/package.json $TEMP_DIR/package.json
22*7820a3eeSStanisław Chmiela
23*7820a3eeSStanisław Chmiela# packages are used by the optional-modules-linking-code in XDL
24*7820a3eeSStanisław Chmiela# see xdl/AndroidShellApp.js
25503d9a4aSNick Novitskiln -s ${ROOT_DIR}/packages $TEMP_DIR/packages
26503d9a4aSNick Novitski
27*7820a3eeSStanisław Chmiela# generate dynamic macros (we can do it here, as the contents are already `ln -s`-ed)
28a8169b0dSEric Samelsonet android-generate-dynamic-macros --configuration release
29503d9a4aSNick Novitski
30*7820a3eeSStanisław Chmiela# build the artifact
31503d9a4aSNick Novitskicd $TEMP_DIR; tar -czhf $ARTIFACTS_DIR/android-shell-builder.tar.gz .
32503d9a4aSNick Novitskirm -rf $TEMP_DIR
33