#!/bin/bashset -eset +x# -------------------------------------------------------------------------------# mutable global variables# -------------------------------------------------------------------------------TOOLCHAIN=clang # gcc/clang toolchain# -------------------------------------------------------------------------------# readonly global variables# -------------------------------------------------------------------------------readonly ROOT_PATH=$(pwd)readonly ANDROID_ABI=1ドルreadonly ANDROID_PLATFORM="android-2ドル"readonly BUILD_ROOT=build/Androidreadonly BUILD_DIR=${BUILD_ROOT}/${ANDROID_ABI}-api-2ドル# -------------------------------------------------------------------------------# tasks# -------------------------------------------------------------------------------__make_build_dir() {if [ ! -d "${BUILD_DIR}" ]; thenecho "-- [INFO] BUILD_DIR: ${BUILD_DIR} not exists, setup manually ..."if [ ! -d "${BUILD_ROOT}" ]; thenmkdir -p "${BUILD_ROOT}" && echo "-- [INFO] Created ${BUILD_ROOT} !"fimkdir -p "${BUILD_DIR}" && echo "-- [INFO] Created ${BUILD_DIR} !"elseecho "-- [INFO] Found BUILD_DIR: ${BUILD_DIR}"fi}__check_cxx_envs() {if [ $LDFLAGS ]; thenecho "-- [INFO] Found LDFLAGS: ${LDFLAGS}, \c"echo "unset it before crossing compiling ${ANDROID_ABI}"unset LDFLAGSfiif [ $CPPFLAGS ]; thenecho "-- [INFO] Found CPPFLAGS: ${CPPFLAGS}, \c"echo "unset it before crossing compiling ${ANDROID_ABI}"unset CPPFLAGSfiif [ $CPLUS_INCLUDE_PATH ]; thenecho "-- [INFO] Found CPLUS_INCLUDE_PATH: ${CPLUS_INCLUDE_PATH}, \c"echo "unset it before crossing compiling ${ANDROID_ABI}"unset CPLUS_INCLUDE_PATHfiif [ $C_INCLUDE_PATH ]; thenecho "-- [INFO] Found C_INCLUDE_PATH: ${C_INCLUDE_PATH}, \c"echo "unset it before crossing compiling ${ANDROID_ABI}"unset C_INCLUDE_PATHfi}__set_android_ndk() {if [ -z $ANDROID_NDK ]; thenecho "-- [INFO] ANDROID_NDK not exists, please setup manually ..."exit 0elseecho "-- [INFO] Found ANDROID_NDK: ${ANDROID_NDK}"fiif [ "$ANDROID_NDK" ]; thenNDK_VERSION=$(echo $ANDROID_NDK | egrep -o "[0-9]{2}" | head -n 1)if [ "$NDK_VERSION" -gt 17 ]; thenTOOLCHAIN=clangfiecho "-- [INFO] Checked ndk version: ${NDK_VERSION}"echo "-- [INFO] Selected toolchain: ${TOOLCHAIN}"fi}__build_fastdeploy_android_shared() {local ANDROID_STL=c++_shared # c++_staticlocal ANDROID_TOOLCHAIN=${TOOLCHAIN}local TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmakelocal FASDEPLOY_INSTALL_DIR="${ROOT_PATH}/${BUILD_DIR}/install"cd "${BUILD_DIR}" && echo "-- [INFO] Working Dir: ${PWD}"cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} \-DCMAKE_BUILD_TYPE=MinSizeRel \-DANDROID_ABI=${ANDROID_ABI} \-DANDROID_NDK=${ANDROID_NDK} \-DANDROID_PLATFORM=${ANDROID_PLATFORM} \-DANDROID_STL=${ANDROID_STL} \-DANDROID_TOOLCHAIN=${ANDROID_TOOLCHAIN} \-DENABLE_ORT_BACKEND=OFF \-DENABLE_LITE_BACKEND=ON \-DENABLE_PADDLE2ONNX=OFF \-DENABLE_FLYCV=ON \-DENABLE_TEXT=OFF \-DENABLE_VISION=ON \-DBUILD_EXAMPLES=ON \-DWITH_ANDROID_OPENCV_STATIC=OFF \-DWITH_ANDROID_LITE_STATIC=OFF \-DWITH_ANDROID_OPENMP=OFF \-DCMAKE_INSTALL_PREFIX=${FASDEPLOY_INSTALL_DIR} \-Wno-dev ../../.. && make -j8 && make installecho "-- [INFO][built][${ANDROID_ABI}][${BUILD_DIR}/install]"}main() {__make_build_dir__check_cxx_envs__set_android_ndk__build_fastdeploy_android_sharedexit 0}main# Usage:# ./scripts/android/build_android_cpp.sh arm64-v8a 21# ./scripts/android/build_android_cpp.sh armeabi-v7a 21
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。