Skip to content

Commit 4597ae8

Browse files
committed
CDRIVER-2587 compile libmongocapi on android
1 parent e5fe2c7 commit 4597ae8

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

.evergreen/config.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6629,6 +6629,7 @@ tasks:
66296629
set -o errexit
66306630
set -o verbose
66316631
. ./.evergreen/find-cmake.sh
6632+
${setup_android_toolchain|}
66326633
export ${libmongocapi_compile_env|}
66336634
mkdir cmake-build-libmongocapi
66346635
$CMAKE \
@@ -6641,6 +6642,7 @@ tasks:
66416642
-DENABLE_SRV=OFF \
66426643
-DENABLE_EXAMPLES=OFF \
66436644
-DENABLE_STATIC=OFF \
6645+
-DENABLE_SHM_COUNTERS=OFF \
66446646
${libmongocapi_cmake_flags}
66456647
make install VERBOSE=1
66466648
@@ -7364,3 +7366,49 @@ buildvariants:
73647366
libmongocapi_compile_env: DEVELOPER_DIR=/Applications/Xcode9.2.app
73657367
tasks:
73667368
- name: compile-libmongocapi
7369+
7370+
- name: android-debug-arm64
7371+
display_name: "Android arm64 (Ubuntu 16.04)"
7372+
run_on:
7373+
- ubuntu1604-build
7374+
batchtime: 1440 # 1 day
7375+
expansions:
7376+
libmongocapi_cmake_flags: >-
7377+
-DANDROID_NATIVE_API_LEVEL=24
7378+
-DANDROID_ABI=arm64-v8a
7379+
-DTHREADS_PTHREAD_ARG=2
7380+
-DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7381+
-DCMAKE_FIND_ROOT_PATH="$WORKDIR/android_toolchain"
7382+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
7383+
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
7384+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
7385+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
7386+
-DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib
7387+
compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
7388+
setup_android_toolchain: |
7389+
JAVA_HOME=/opt/java/jdk8/ ./.evergreen/setup-android-toolchain.sh arm64-v8a arm64
7390+
tasks:
7391+
- name: compile-libmongocapi
7392+
7393+
- name: android-debug-x86
7394+
display_name: "Android x86_64 (Ubuntu 16.04)"
7395+
run_on:
7396+
- ubuntu1604-build
7397+
batchtime: 1440 # 1 day
7398+
expansions:
7399+
libmongocapi_cmake_flags: >-
7400+
-DANDROID_NATIVE_API_LEVEL=24
7401+
-DANDROID_ABI=x86_64
7402+
-DTHREADS_PTHREAD_ARG=2
7403+
-DCMAKE_TOOLCHAIN_FILE=$WORKDIR/android_sdk/ndk-bundle/build/cmake/android.toolchain.cmake
7404+
-DCMAKE_FIND_ROOT_PATH=$WORKDIR/android_toolchain
7405+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY
7406+
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
7407+
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER
7408+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY
7409+
-DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib
7410+
compile_env: DEVELOPER_DIR=/Applications/Xcode8.3.app
7411+
setup_android_toolchain: |
7412+
JAVA_HOME=/opt/java/jdk8/ ./.evergreen/setup-android-toolchain.sh x86_64 x86_64
7413+
tasks:
7414+
- name: compile-libmongocapi

.evergreen/setup-android-toolchain.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/sh
2+
3+
set -o xtrace
4+
set -o verbose
5+
set -o errexit
6+
7+
_SystemImageArch=$1
8+
shift
9+
_ToolchainArch=$1
10+
shift
11+
12+
SDK_ROOT=$PWD/android_sdk
13+
mkdir $SDK_ROOT
14+
15+
TOOLCHAIN=$PWD/android_toolchain
16+
mkdir $TOOLCHAIN
17+
18+
API_VERSION=24
19+
20+
(
21+
cd $SDK_ROOT
22+
SDK_PACKAGE=sdk-tools-linux-3859397.zip
23+
curl -O https://dl.google.com/android/repository/$SDK_PACKAGE
24+
unzip $SDK_PACKAGE
25+
echo y | ./tools/bin/sdkmanager "platforms;android-24" "emulator" "ndk-bundle" "platform-tools" "build-tools;23.0.3" "system-images;android-24;google_apis;$_SystemImageArch"
26+
)
27+
28+
python $SDK_ROOT/ndk-bundle/build/tools/make_standalone_toolchain.py --arch $_ToolchainArch --api $API_VERSION --stl=libc++ --force --install-dir $TOOLCHAIN
29+
30+
echo SDK_ROOT=${SDK_ROOT}
31+
echo TOOLCHAIN=${TOOLCHAIN}
32+
echo API_VERSION=${API_VERSION}

0 commit comments

Comments
 (0)