#!/usr/bin/env bash # This script is meant to run here inside the swig folder # It's supposed to be a one step build for the java jar and android (.so enclosing) jars (armv8 and x86) # Output .jar files will be at: # ../build/libs/${LIBRARY_NAME}-.jar # ../build/libs/${LIBRARY_NAME}-android-arm64-.jar # remote android-arm build with travis is available at https://s3.amazonaws.com/gubatron-jlibtorrent/release/android/arm64-v8a/libjlibtorrent.so source build-utils.shinc check_min_req_vars export os_arch=arm64 export os_build=android export android_api=21 export SHARED_LIB=lib${LIBRARY_NAME}.so export CXX=g++ export NDK_VERSION=r21d prepare_android_toolchain abort_if_var_unset "ANDROID_TOOLCHAIN" ${ANDROID_TOOLCHAIN} export CC=${ANDROID_TOOLCHAIN}/bin/aarch64-linux-android${android_api}-clang export run_openssl_configure="./Configure linux-aarch64 ${OPENSSL_NO_OPTS} -march=armv8-a+crypto -mfpu=neon -fPIC --prefix=${OPENSSL_ROOT}"; export run_readelf="${ANDROID_TOOLCHAIN}/bin/aarch64-linux-android-readelf -d bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB}" export run_bjam="${BOOST_ROOT}/b2 -j8 --user-config=config/${os_build}-${os_arch}-config.jam variant=release toolset=clang-${os_arch} target-os=${os_build} location=bin/release/${os_build}/${os_arch}-v8a" export run_strip="${ANDROID_TOOLCHAIN}/bin/aarch64-linux-android-strip --strip-unneeded -x -g bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB}" export run_objcopy="${ANDROID_TOOLCHAIN}/bin/aarch64-linux-android-objcopy --only-keep-debug bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB} bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB}.debug" export PATH=$ANDROID_TOOLCHAIN/aarch64-linux-android/bin:$PATH; sed -i 's/RANLIB = ranlib/RANLIB = "${ANDROID_TOOLCHAIN}\/bin\/aarch64-linux-android-ranlib"/g' ${BOOST_ROOT}/tools/build/src/tools/gcc.jam; create_folder_if_it_doesnt_exist ${SRC} FILE=../../torrentStream/src/main/jniLibs/${os_arch}-v8a/${SHARED_LIB} if [ -f "$FILE" ]; then echo "${SHARED_LIB} exists for ${os_arch}-v8a" else FILE2=bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB} if [ -f "$FILE2" ]; then cd .. mkdir -p ../torrentStream/src/main/jniLibs/${os_arch}-v8a cp swig/bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB} ../torrentStream/src/main/jniLibs/${os_arch}-v8a/ cd swig || exit else prompt_msg "About to prepare BOOST ${BOOST_VERSION}" prepare_boost prepare_openssl build_openssl export CC=${ANDROID_TOOLCHAIN}/bin/aarch64-linux-android${android_api}-clang++ prepare_libtorrent ./run-swig.sh build_libraries cd .. mkdir -p ../torrentStream/src/main/jniLibs/${os_arch}-v8a cp swig/bin/release/${os_build}/${os_arch}-v8a/${SHARED_LIB} ../torrentStream/src/main/jniLibs/${os_arch}-v8a/ cd swig || exit fi fi