|
|
|
@@ -3,82 +3,106 @@ |
|
|
|
set -e |
|
|
|
BASE_PATH=$(cd "$(dirname $0)"; pwd) |
|
|
|
TOP_PATH="${BASE_PATH}/../../.." |
|
|
|
# build mindspore-lite arm64 |
|
|
|
cd ${TOP_PATH} |
|
|
|
bash build.sh -I arm64 |
|
|
|
COMPILE_ARM64_RET=$? |
|
|
|
if [[ "${COMPILE_ARM64_RET}" -ne 0 ]]; then |
|
|
|
echo "---------------- mindspore lite: build failed ----------------" |
|
|
|
exit |
|
|
|
fi |
|
|
|
|
|
|
|
# copy arm64 so |
|
|
|
cd ${TOP_PATH}/output/ |
|
|
|
rm -rf mindspore-lite-0.7.0 |
|
|
|
tar -zxvf mindspore-lite-0.7.0-runtime-arm64-cpu.tar.gz |
|
|
|
mkdir -p ${BASE_PATH}/lib/ |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-0.7.0-runtime-arm64-cpu/lib/libmindspore-lite.so ${BASE_PATH}/lib/ |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-0.7.0-runtime-arm64-cpu/lib/liboptimize.so ${BASE_PATH}/lib/ |
|
|
|
cp ${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so ${BASE_PATH}/lib/ |
|
|
|
get_version() { |
|
|
|
VERSION_MAJOR=`grep "#define MS_VERSION_MAJOR" ../../include/version.h | tr -dc "[0-9]"` |
|
|
|
VERSION_MINOR=`grep "#define MS_VERSION_MINOR" ../../include/version.h | tr -dc "[0-9]"` |
|
|
|
VERSION_REVISION=`grep "#define MS_VERSION_REVISION" ../../include/version.h | tr -dc "[0-9]"` |
|
|
|
VERSION_STR=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION} |
|
|
|
} |
|
|
|
|
|
|
|
# build jni so |
|
|
|
cd ${BASE_PATH}/native |
|
|
|
rm -rf build |
|
|
|
mkdir build |
|
|
|
cd build |
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ |
|
|
|
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="arm64-v8a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ |
|
|
|
-DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. |
|
|
|
VERBOSE=2 make -j8 |
|
|
|
cp ${BASE_PATH}/native/build/libmindspore-lite-jni.so ${BASE_PATH}/lib/ |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
rm -rf ${BASE_PATH}/java/app/libs/arm64-v8a/* |
|
|
|
cp ${BASE_PATH}/lib/*.so ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
rm -rf "${BASE_PATH:?}/lib/*" |
|
|
|
build_mslite_arm64() { |
|
|
|
# build mindspore-lite arm64 |
|
|
|
cd ${TOP_PATH} |
|
|
|
bash build.sh -I arm64 |
|
|
|
COMPILE_RET=$? |
|
|
|
|
|
|
|
# build mindspore-lite arm32 |
|
|
|
cd ${TOP_PATH} |
|
|
|
bash build.sh -I arm32 |
|
|
|
COMPILE_ARM32_RET=$? |
|
|
|
if [[ "${COMPILE_RET}" -ne 0 ]]; then |
|
|
|
echo "---------------- mindspore lite arm64: build failed ----------------" |
|
|
|
exit |
|
|
|
fi |
|
|
|
# copy arm64 so |
|
|
|
cd ${TOP_PATH}/output/ |
|
|
|
rm -rf mindspore-lite-${VERSION_STR}-runtime-arm64-cpu |
|
|
|
tar -zxvf mindspore-lite-${VERSION_STR}-runtime-arm64-cpu.tar.gz |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
rm -rf ${BASE_PATH}/java/app/libs/arm64-v8a/* |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm64-cpu/lib/libmindspore-lite.so ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm64-cpu/lib/liboptimize.so ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
cp ${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
} |
|
|
|
|
|
|
|
if [[ "${COMPILE_ARM32_RET}" -ne 0 ]]; then |
|
|
|
echo "---------------- mindspore lite: build failed ----------------" |
|
|
|
exit |
|
|
|
fi |
|
|
|
build_mslite_arm32() { |
|
|
|
# build mindspore-lite arm64 |
|
|
|
cd ${TOP_PATH} |
|
|
|
bash build.sh -I arm32 |
|
|
|
COMPILE_RET=$? |
|
|
|
|
|
|
|
# copy arm32 so |
|
|
|
cd ${TOP_PATH}/output/ |
|
|
|
rm -rf mindspore-lite-0.7.0 |
|
|
|
tar -zxvf mindspore-lite-0.7.0-runtime-arm32-cpu.tar.gz |
|
|
|
mkdir -p ${BASE_PATH}/lib/ |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-0.7.0-runtime-arm32-cpu/lib/libmindspore-lite.so ${BASE_PATH}/lib/ |
|
|
|
cp ${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so ${BASE_PATH}/lib/ |
|
|
|
if [[ "${COMPILE_RET}" -ne 0 ]]; then |
|
|
|
echo "---------------- mindspore lite arm32: build failed ----------------" |
|
|
|
exit |
|
|
|
fi |
|
|
|
# copy arm32 so |
|
|
|
cd ${TOP_PATH}/output/ |
|
|
|
rm -rf mindspore-lite-${VERSION_STR}runtime-arm32-cpu |
|
|
|
tar -zxvf mindspore-lite-${VERSION_STR}-runtime-arm32-cpu.tar.gz |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
rm -rf ${BASE_PATH}/java/app/libs/armeabi-v7a/* |
|
|
|
cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm32-cpu/lib/libmindspore-lite.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
cp ${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
} |
|
|
|
|
|
|
|
# build jni so |
|
|
|
cd ${BASE_PATH}/native |
|
|
|
rm -rf build |
|
|
|
mkdir build |
|
|
|
cd build |
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ |
|
|
|
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="armeabi-v7a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ |
|
|
|
-DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. |
|
|
|
VERBOSE=2 make -j8 |
|
|
|
cp ${BASE_PATH}/native/build/libmindspore-lite-jni.so ${BASE_PATH}/lib/ |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
rm -rf ${BASE_PATH}/java/app/libs/armeabi-v7a/* |
|
|
|
cp ${BASE_PATH}/lib/*.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
build_jni_arm64() { |
|
|
|
# build jni so |
|
|
|
cd ${BASE_PATH}/java/app/src/main/native |
|
|
|
rm -rf build |
|
|
|
mkdir build |
|
|
|
cd build |
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ |
|
|
|
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="arm64-v8a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ |
|
|
|
-DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. |
|
|
|
VERBOSE=2 make -j8 |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
cp ${BASE_PATH}/java/app/src/main/native/build/libmindspore-lite-jni.so ${BASE_PATH}/java/app/libs/arm64-v8a/ |
|
|
|
} |
|
|
|
|
|
|
|
# build aar |
|
|
|
## check sdk gradle |
|
|
|
cd ${BASE_PATH}/java |
|
|
|
rm -rf .gradle build gradle gradlew gradlew.bat build app/build |
|
|
|
build_jni_arm32() { |
|
|
|
# build jni so |
|
|
|
cd ${BASE_PATH}/java/app/src/main/native |
|
|
|
rm -rf build |
|
|
|
mkdir build |
|
|
|
cd build |
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ |
|
|
|
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="armeabi-v7a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ |
|
|
|
-DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. |
|
|
|
VERBOSE=2 make -j8 |
|
|
|
mkdir -p ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
cp ${BASE_PATH}/java/app/src/main/native/build/libmindspore-lite-jni.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ |
|
|
|
} |
|
|
|
|
|
|
|
gradle init |
|
|
|
gradle wrapper |
|
|
|
./gradlew build |
|
|
|
build_aar() { |
|
|
|
# build aar |
|
|
|
## check sdk gradle |
|
|
|
cd ${BASE_PATH}/java |
|
|
|
rm -rf .gradle build gradle gradlew gradlew.bat build app/build |
|
|
|
|
|
|
|
# copy output |
|
|
|
cd ${BASE_PATH}/ |
|
|
|
rm -rf output |
|
|
|
mkdir -pv output |
|
|
|
cp ${BASE_PATH}/java/app/build/outputs/aar/mindspore-lite.aar ${BASE_PATH}/output/ |
|
|
|
gradle init |
|
|
|
gradle wrapper |
|
|
|
./gradlew build |
|
|
|
} |
|
|
|
|
|
|
|
copy_output() { |
|
|
|
# copy output |
|
|
|
cd ${BASE_PATH}/ |
|
|
|
rm -rf output |
|
|
|
mkdir -pv output |
|
|
|
cp ${BASE_PATH}/java/app/build/outputs/aar/mindspore-lite.aar ${BASE_PATH}/output/ |
|
|
|
} |
|
|
|
|
|
|
|
get_version |
|
|
|
build_mslite_arm64 |
|
|
|
build_mslite_arm32 |
|
|
|
build_jni_arm64 |
|
|
|
build_jni_arm32 |
|
|
|
build_aar |
|
|
|
copy_output |