mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-11-11 07:10:36 +00:00
2709ec1930
- ANDROID_NDK_ROOT must be set in env - cmake should be setting `-DANDROID_API=23` - specify the correct android API via a define when building openssl; it has to be in CPPFLAGS (not CFLAGS) because otherwise openssl's configure script doesn't notice and overrides our define with the latest API version. - openssl configure puts $(ANDROID_NDK_ROOT) in the makefile, so we have to be sure that we put it in the environment for the build command, too.
69 lines
2.0 KiB
Bash
Executable File
69 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
default_abis="armeabi-v7a arm64-v8a x86_64"
|
|
build_abis=${ABIS:-$default_abis}
|
|
|
|
test x$NDK = x && test -e /usr/lib/android-ndk && export NDK=/usr/lib/android-ndk
|
|
test x$NDK = x && exit 1
|
|
|
|
echo "building abis: $build_abis"
|
|
|
|
root=$(readlink -f "$1")
|
|
shift
|
|
build=$(readlink -f "$1")
|
|
shift
|
|
mkdir -p $build
|
|
cd $build
|
|
|
|
for abi in $build_abis; do
|
|
mkdir -p build-$abi
|
|
cd build-$abi
|
|
cmake \
|
|
-S "$root" -B . \
|
|
-G 'Unix Makefiles' \
|
|
-DANDROID=ON \
|
|
-DANDROID_ABI=$abi \
|
|
-DANDROID_ARM_MODE=arm \
|
|
-DANDROID_PLATFORM=android-23 \
|
|
-DANDROID_API=23 \
|
|
-DANDROID_STL=c++_static \
|
|
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
|
|
-DBUILD_STATIC_DEPS=ON \
|
|
-DBUILD_PACKAGE=ON \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DBUILD_LIBLOKINET=OFF \
|
|
-DWITH_TESTS=OFF \
|
|
-DWITH_BOOTSTRAP=OFF \
|
|
-DNATIVE_BUILD=OFF \
|
|
-DSTATIC_LINK=ON \
|
|
-DWITH_SYSTEMD=OFF \
|
|
-DFORCE_OXENMQ_SUBMODULE=ON \
|
|
-DFORCE_OXENC_SUBMODULE=ON \
|
|
-DFORCE_FMT_SUBMODULE=ON \
|
|
-DFORCE_SPDLOG_SUBMODULE=ON \
|
|
-DFORCE_NLOHMANN_SUBMODULE=ON \
|
|
-DSUBMODULE_CHECK=OFF \
|
|
-DWITH_LTO=OFF \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
"$@"
|
|
cd -
|
|
done
|
|
rm -f $build/Makefile
|
|
echo "# generated makefile" >> $build/Makefile
|
|
echo "all: $build_abis" >> $build/Makefile
|
|
for abi in $build_abis; do
|
|
echo -ne "$abi:\n\t" >> $build/Makefile
|
|
echo -ne '$(MAKE) -C ' >> $build/Makefile
|
|
echo "build-$abi lokinet-android" >> $build/Makefile
|
|
echo -ne "\tmkdir -p out/$abi && cp build-$abi/jni/liblokinet-android.so out/$abi/liblokinet-android.so\n\n" >> $build/Makefile
|
|
echo -ne "clean-$abi:\n\t" >> $build/Makefile
|
|
echo -ne '$(MAKE) -C ' >> $build/Makefile
|
|
echo "build-$abi clean" >> $build/Makefile
|
|
done
|
|
|
|
echo -ne "clean:" >> $build/Makefile
|
|
for targ in $build_abis ; do echo -ne " clean-$targ" >> $build/Makefile ; done
|
|
echo "" >> $build/Makefile
|