Skip to content

Commit 2e7e85d

Browse files
committed
Add a script to build the android libraries
I'm not too fond of many of the hardcoded paths, but this is a good first step. Once I get this working, I'll then improve it.
1 parent 72cad81 commit 2e7e85d

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/build-android.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/sh
2+
3+
set -eux
4+
5+
# Assumes Android Studio is installed on the standard path along with Android SDK/NDK
6+
export ANDROID_HOME=~/Library/Android/sdk/
7+
export ANDROID_NDK_HOME=~/Library/Android/sdk/ndk/$(ls $ANDROID_HOME/ndk | head -1)
8+
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
9+
10+
ROOTDIR=$(cd $(dirname $0); pwd -P)
11+
DISTDIR=$ROOTDIR/../android/
12+
TMPDIR=$ROOTDIR/tmp/android
13+
14+
export PATH=$ANDROID_HOME/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$ANDROID_HOME/platform-tools:$PATH
15+
16+
rm -rf $DISTDIR/jniLibs $TMPDIR
17+
mkdir -p \
18+
$DISTDIR \
19+
$TMPDIR/armeabi-v7a \
20+
$TMPDIR/arm64-v8a \
21+
$TMPDIR/x86 \
22+
$TMPDIR/x86_64
23+
24+
ANDROID_SDK_VERSION=34
25+
CLANG_SUFFIX=-linux-android$ANDROID_SDK_VERSION-clang
26+
27+
export GOOS=android
28+
export CGO_ENABLED=1
29+
30+
GOARCH=arm CC=armv7a-linux-androideabi$ANDROID_SDK_VERSION-clang CXX=armv7a-linux-androideabi$ANDROID_SDK_VERSION-clang++ \
31+
go build -v -x -buildmode=c-shared -trimpath -o=$TMPDIR/armeabi-v7a/go_git_dart.so
32+
GOARCH=arm64 CC=aarch64$CLANG_SUFFIX CXX=aarch64$CLANG_SUFFIX++ \
33+
go build -v -x -buildmode=c-shared -trimpath -o=$TMPDIR/arm64-v8a/go_git_dart.so
34+
GOARCH=386 CC=i686$CLANG_SUFFIX CXX=i686$CLANG_SUFFIX++ \
35+
go build -v -x -buildmode=c-shared -trimpath -o=$TMPDIR/x86/go_git_dart.so
36+
GOARCH=amd64 CC=x86_64$CLANG_SUFFIX CXX=x86_64$CLANG_SUFFIX++ \
37+
go build -v -x -buildmode=c-shared -trimpath -o=$TMPDIR/x86_64/go_git_dart.so
38+
39+
cp -rf $TMPDIR $DISTDIR/jniLibs
40+
find $DISTDIR -name "*.h" -exec rm {} \;
41+
rm -rf $DISTDIR/jniLibs/tmp
42+

0 commit comments

Comments
 (0)