1#!/bin/bash 2# Copyright 2021-2022 Huawei Technologies Co., Ltd 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# ============================================================================ 16 17set -e 18 19checkndk() { 20 if [ "${ANDROID_NDK}" ]; then 21 echo -e "\e[31mANDROID_NDK=$ANDROID_NDK \e[0m" 22 else 23 echo -e "\e[31mplease set ANDROID_NDK in environment variable for example: export ANDROID_NDK=/root/usr/android-ndk-r20b/ \e[0m" 24 exit 1 25 fi 26} 27 28check_Hi35xx() { 29 if [[ "X${HI35XX_SDK_PATH}" == "X" ]]; then 30 echo "error: to compile the runtime package of Hi35XX, you need to set HI35XX_SDK_PATH to declare the path of Hi35XX sdk." 31 exit 1 32 else 33 cp -r ${HI35XX_SDK_PATH}/third_patry ${BASEPATH}/mindspore/lite/providers/nnie 34 fi 35} 36 37get_version() { 38 VERSION_STR=$(cat ${BASEPATH}/version.txt) 39} 40 41get_cpack_dir() { 42 # ${CPACK_PACKAGE_DIR}/${pkg_name} is the output of package_lite.cmake(make package) 43 # ${INSTALL_PREFIX}/${pkg_name} is the output of make install 44 # please use ${CPACK_PACKAGE_DIR}/${pkg_name} instead of ${INSTALL_PREFIX}/${pkg_name} 45 local pack_dir="_CPack_Packages" 46 local ms_pack="mindspore-lite-${VERSION_STR}" 47 local cpack_dir="${INSTALL_PREFIX}/${pack_dir}" 48 49 local linux_x86_path="${cpack_dir}/Linux/TGZ/${ms_pack}/linux-x64" 50 local linux_cortex_path="${cpack_dir}/Linux/TGZ/${ms_pack}/none-cortex-m7" 51 local linux_aarch64_path="${cpack_dir}/Linux/TGZ/${ms_pack}/linux-aarch64" 52 local linux_aarch32_path="${cpack_dir}/Linux/TGZ/${ms_pack}/linux-aarch32" 53 local android_aarch64_path="${cpack_dir}/Android/TGZ/${ms_pack}/android-aarch64" 54 local android_aarch32_path="${cpack_dir}/Android/TGZ/${ms_pack}/android-aarch32" 55 56 CPACK_PACKAGE_DIR="" 57 if [ -d "${linux_x86_path}" ]; then 58 CPACK_PACKAGE_DIR=${linux_x86_path} 59 elif [ -d "${linux_cortex_path}" ]; then 60 CPACK_PACKAGE_DIR=${linux_cortex_path} 61 elif [ -d "${linux_aarch64_path}" ]; then 62 CPACK_PACKAGE_DIR=${linux_aarch64_path} 63 elif [ -d "${linux_aarch32_path}" ]; then 64 CPACK_PACKAGE_DIR=${linux_aarch32_path} 65 elif [ -d "${android_aarch64_path}" ]; then 66 CPACK_PACKAGE_DIR=${android_aarch64_path} 67 elif [ -d "${android_aarch32_path}" ]; then 68 CPACK_PACKAGE_DIR=${android_aarch32_path} 69 else 70 echo "Please check cpack path." 71 fi 72 echo "Using cpack output path: ${CPACK_PACKAGE_DIR}" 73} 74 75write_commit_file() { 76 COMMIT_STR=$(git log -1 | grep commit) 77 echo ${COMMIT_STR} > "${BASEPATH}/mindspore/lite/build/.commit_id" 78} 79 80build_lite_jni_and_jar() { 81 local JNI_CMAKE_ARGS=$1 82 local local_lite_platform=$2 83 echo "============ mindspore lite: start building jni and jar ${VERSION_STR} ${local_lite_platform} ============" 84 export MSLITE_ENABLE_RUNTIME_CONVERT=off 85 86 local PKG_NAME 87 local NATIVE_PATH_ARCH 88 local RESOURCE_PATH_ARCH 89 if [[ "${local_lite_platform}" == "x86_64" ]]; then 90 PKG_NAME=mindspore-lite-${VERSION_STR}-linux-x64 91 NATIVE_PATH_ARCH=linux_x86 92 RESOURCE_PATH_ARCH=linux_x86_64 93 elif [[ "${local_lite_platform}" == "aarch64" ]]; then 94 PKG_NAME=mindspore-lite-${VERSION_STR}-linux-aarch64 95 NATIVE_PATH_ARCH=linux_aarch64 96 RESOURCE_PATH_ARCH=linux_aarch64 97 JNI_CMAKE_ARGS="${JNI_CMAKE_ARGS} -DMACHINE_LINUX_ARM64=on" 98 else 99 echo "platform: ${local_lite_platform} not support building jni." 100 exit 0 101 fi 102 103 # copy so 104 local is_train=on 105 local is_cloud_infer=off 106 cd ${INSTALL_PREFIX}/ 107 108 rm -rf ${PKG_NAME} 109 tar -zxf ${INSTALL_PREFIX}/${PKG_NAME}.tar.gz 110 rm -rf ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ && mkdir -pv ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 111 rm -rf ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ && mkdir -pv ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 112 cp ./${PKG_NAME}/runtime/lib/*.so* ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 113 cp ./${PKG_NAME}/runtime/lib/*.so* ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 114 local train_so=${PKG_NAME}/runtime/lib/libmindspore-lite-train.so 115 if [ ! -f "$train_so" ]; then 116 echo "libmindspore-lite-train.so so not exist" 117 is_train=off 118 fi 119 if [[ "X$is_train" = "Xon" ]]; then 120 cp ./${PKG_NAME}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 121 cp ./${PKG_NAME}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 122 fi 123 # prepare 124 cd ${BASEPATH}/mindspore/lite/build 125 rm -rf java/jni && mkdir -pv java/jni 126 cd java/jni 127 # copy glog lib and headers 128 LIB_GLOG="libmindspore_glog.so*" 129 if [ -f "`echo ${INSTALL_PREFIX}/${PKG_NAME}/runtime/third_party/glog/${LIB_GLOG}`" ]; then 130 cp ${INSTALL_PREFIX}/${PKG_NAME}/runtime/third_party/glog/*.so* ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 131 cp ${INSTALL_PREFIX}/${PKG_NAME}/runtime/third_party/glog/*.so* ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 132 else 133 echo "no glog lib found." 134 fi 135 if [ -d "${BASEPATH}/output/tmp/${PKG_NAME}/runtime/include/third_party/glog" ]; then 136 rm -rf jni_include && mkdir jni_include 137 cp ${BASEPATH}/output/tmp/${PKG_NAME}/runtime/include/third_party/glog ./jni_include -r 138 else 139 echo "no glog hesders found." 140 fi 141 # build jni so 142 echo "cmake ${JNI_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} ${LITE_JAVA_PATH}/native/" 143 cmake ${JNI_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} "${LITE_JAVA_PATH}/native/" 144 make -j$THREAD_NUM 145 if [[ $? -ne 0 ]]; then 146 echo "---------------- mindspore lite: build jni ${local_lite_platform} failed----------------" 147 exit 1 148 fi 149 rm -f ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/*.so* 150 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 151 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 152 cp ./libmindspore-lite-jni.so ${INSTALL_PREFIX}/${PKG_NAME}/runtime/lib/ 153 154 if [[ "$MSLITE_ENABLE_CLOUD_FUSION_INFERENCE" == "ON" || "$MSLITE_ENABLE_CLOUD_FUSION_INFERENCE" == "on" ]];then 155 is_cloud_infer=on 156 fi 157 if [[ "$MSLITE_ENABLE_CLOUD_INFERENCE" == "ON" || "$MSLITE_ENABLE_CLOUD_INFERENCE" == "on" ]];then 158 is_cloud_infer=on 159 fi 160 161 RUNTIME_LIB_DIR="${BASEPATH}/output/tmp/${PKG_NAME}/runtime/lib" 162 if [[ -d ${RUNTIME_LIB_DIR} ]]; then 163 if [ "$(ls -A ${RUNTIME_LIB_DIR})" ]; then 164 cp ${RUNTIME_LIB_DIR}/*.so ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/ 165 fi 166 fi 167 CONVERTER_LIB_DIR="${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib" 168 if [[ "X$is_cloud_infer" = "Xon" && -d ${CONVERTER_LIB_DIR} ]]; then 169 if [ "$(ls -A ${CONVERTER_LIB_DIR})" ]; then 170 cp ${CONVERTER_LIB_DIR}/*.so ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/ 171 fi 172 fi 173 174 if [ -f "`echo ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_GLOG}`" ]; then 175 cp ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/libmindspore_glog.so* ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/libmindspore_glog.so 176 fi 177 LIB_OPENCV_IMGPROC="libopencv_imgproc.so*" 178 if [[ "X$is_cloud_infer" = "Xon" && -f "`echo ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_IMGPROC}`" ]]; then 179 cp ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_IMGPROC} ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/libopencv_imgproc.so 180 fi 181 LIB_OPENCV_CORE="libopencv_core.so*" 182 if [[ "X$is_cloud_infer" = "Xon" && -f "`echo ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_CORE}`" ]]; then 183 cp ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_CORE} ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/libopencv_core.so 184 fi 185 LIB_OPENCV_IMGCODECS="libopencv_imgcodecs.so*" 186 if [[ "X$is_cloud_infer" = "Xon" && -f "`echo ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_IMGCODECS}`" ]]; then 187 cp ${BASEPATH}/output/tmp/${PKG_NAME}/tools/converter/lib/${LIB_OPENCV_IMGCODECS} ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/libopencv_imgcodecs.so 188 fi 189 LIB_DNNL="libdnnl.so*" 190 if [[ "X$is_cloud_infer" = "Xon" && -f "`echo ${BASEPATH}/output/tmp/${PKG_NAME}/runtime/third_party/dnnl/${LIB_DNNL}`" ]]; then 191 cp ${BASEPATH}/output/tmp/${PKG_NAME}/runtime/third_party/dnnl/${LIB_DNNL} ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/libdnnl.so 192 fi 193 194 if [[ "X$is_train" = "Xon" ]]; then 195 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 196 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 197 cp ./libmindspore-lite-train-jni.so ${INSTALL_PREFIX}/${PKG_NAME}/runtime/lib/ 198 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite/${RESOURCE_PATH_ARCH}/ 199 fi 200 201 chmod -R 750 ${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite 202 cd ${LITE_JAVA_PATH}/java 203 rm -rf gradle .gradle gradlew gradlew.bat 204 local gradle_version="" 205 gradle_version=`gradle --version | grep Gradle | awk '{print$2}'` 206 if [[ ${gradle_version} == '6.6.1' ]]; then 207 gradle_command=gradle 208 else 209 gradle wrapper --gradle-version 6.6.1 --distribution-type all 210 gradle_command=${LITE_JAVA_PATH}/java/gradlew 211 fi 212 213 # build jar 214 ${gradle_command} clean -p ${LITE_JAVA_PATH}/ 215 if [[ "${ENABLE_ASAN}" == "ON" || "${ENABLE_ASAN}" == "on" ]] ; then 216 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ -x test --info 217 else 218 if [[ "${MSLITE_ENABLE_TESTCASES}" == "ON" || "${MSLITE_ENABLE_TESTCASES}" == "on" ]] ; then 219 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 220 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ --info 221 else 222 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ -x test --info 223 fi 224 fi 225 cp ${LITE_JAVA_PATH}/build/lib/jar/*.jar ${INSTALL_PREFIX}/${PKG_NAME}/runtime/lib/ 226 227 # package 228 cd ${INSTALL_PREFIX} 229 rm -rf ${PKG_NAME}.tar.gz ${PKG_NAME}.tar.gz.sha256 230 tar czf ${PKG_NAME}.tar.gz ${PKG_NAME} 231 sha256sum ${PKG_NAME}.tar.gz > ${PKG_NAME}.tar.gz.sha256 232 rm -rf ${LITE_JAVA_PATH}/java/${NATIVE_PATH_ARCH}/libs/ 233 rm -rf ${LITE_JAVA_PATH}/native/libs/${NATIVE_PATH_ARCH}/ 234 echo "---------------- mindspore lite jni and jar: build success ----------------" 235} 236 237get_python_tag(){ 238 local minor_version=`python3 -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $2}'` || true 239 local py_tags="cp${python_version}${minor_version}-cp${python_version}${minor_version}" 240 if [[ "${minor_version}" == "7" ]]; then 241 py_tags="cp37-cp37m" 242 fi 243 echo ${py_tags} 244} 245 246build_akg() { 247 local python_version=`python3 -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1}'` || true 248 if [[ "${python_version}" == "3" ]]; then 249 echo "---------------- AKG: build start ----------------" 250 AKG_DIR=${BASEPATH}/akg 251 BUILD_DIR=${BASEPATH}/mindspore/lite/build 252 write_version() { 253 cd ${AKG_DIR} 254 if [ ! -e ${AKG_DIR}/version.txt ]; then 255 version=$(git branch | sed -n '/\* /s///p') 256 if [ -z "${version}" ]; then 257 version='master' 258 fi 259 echo ${version#r} >${BUILD_DIR}/akg/version.txt 260 else 261 cp ${AKG_DIR}/version.txt ${BUILD_DIR}/akg 262 fi 263 cp ${AKG_DIR}/setup.py ${BUILD_DIR}/akg/akg_setup.py 264 } 265 cd ${BUILD_DIR} 266 mkdir -pv akg 267 write_version 268 cd ${BUILD_DIR}/akg 269 mkdir -pv build 270 cd build 271 if [[ "X${DEBUG_MODE}" == "Xon" ]]; then 272 AKG_CMAKE_ARGS="${AKG_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Debug -DUSE_AKG_LOG=1" 273 fi 274 # check llvm version for akg 275 AKG_CMAKE_ARGS="${AKG_CMAKE_ARGS} -DUSE_RPC=ON " 276 USE_LLVM=`bash ${BASEPATH}/scripts/build/akg_find_llvm.sh` 277 if [[ "X$USE_LLVM" == "Xon" ]]; then 278 graph_kernel_cfg="-DAKG_USE_LLVM=ON ${graph_kernel_cfg}" 279 AKG_CMAKE_ARGS="${AKG_CMAKE_ARGS} -DUSE_LLVM=ON" 280 fi 281 if [[ ("X${MSLITE_GPU_BACKEND}" == "Xtensorrt") && $1 == "x86_64" ]]; then 282 AKG_CMAKE_ARGS="${AKG_CMAKE_ARGS} -DUSE_CUDA=ON" 283 graph_kernel_cfg="-DAKG_USE_CUDA=ON ${graph_kernel_cfg}" 284 fi 285 if [[ ("X${MSLITE_ENABLE_ACL}" == "Xon") ]]; then 286 AKG_CMAKE_ARGS="${AKG_CMAKE_ARGS} -DENABLE_D=ON" 287 graph_kernel_cfg="-DAKG_ENABLE_D=ON ${graph_kernel_cfg}" 288 fi 289 echo "cmake ${AKG_CMAKE_ARGS}" 290 cmake -S ${AKG_DIR} ${AKG_CMAKE_ARGS} -B . 291 cmake --build . -j$THREAD_NUM 292 cmake --install . 293 cd ${BUILD_DIR}/akg 294 [ -d dist ] && rm -rf dist 295 python3 ${BUILD_DIR}/akg/akg_setup.py bdist_wheel 296 cd dist 297 for file in *.whl; do 298 file_name=$(basename $file) 299 prefix=$(echo $file_name | cut -d '-' -f 1-2) 300 PY_TAGS=`get_python_tag` 301 akg_pkg_name="${prefix}-${PY_TAGS}-linux_$1.whl" 302 mv $file ${akg_pkg_name} 303 sha256sum -b "$akg_pkg_name" >"$akg_pkg_name.sha256" 304 akg_package_path=dist/${akg_pkg_name} 305 done 306 echo "---------------- AKG: build end ----------------" 307 cd ${BUILD_DIR} 308 else 309 echo -e "\e[31mPython3 not found, so AKG will not be compiled. \e[0m" 310 fi 311} 312 313build_python_wheel_package() { 314 local python_version=`python3 -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1}'` || true 315 if [[ "${python_version}" == "3" ]]; then 316 cd ${BASEPATH}/mindspore/lite/build/ 317 local lite_wrapper_so=`ls python/_c_lite_wrapper*.so` || true 318 if [ ! -f "${lite_wrapper_so}" ]; then 319 echo "error: can not find python so." 320 return 0 321 fi 322 mkdir -pv package/mindspore_lite/lib/ 323 cp ../python/api/* package/mindspore_lite/ 324 local pkg_name=mindspore-lite-${VERSION_STR}-linux-$1 325 if [[ "$1" == "x86_64" ]]; then 326 local pkg_name=mindspore-lite-${VERSION_STR}-linux-x64 327 fi 328 if [[ ("${MSLITE_ENABLE_CLOUD_FUSION_INFERENCE}" == "on") || ("${MSLITE_ENABLE_CLOUD_INFERENCE}" == "on") ]]; then 329 cp src/extendrt/*.so package/mindspore_lite/lib/ 330 find src/extendrt/delegate/graph_executor/litert/ -name "*.so" -exec cp '{}' package/mindspore_lite/lib/ \; 331 find src/extendrt/unified_executor/ -name "*.so" -exec cp '{}' package/mindspore_lite/lib/ \; 332 find src/extendrt/convert/ -name "*.so" -exec cp '{}' package/mindspore_lite/lib/ \; 333 if [[ "X${MSLITE_ENABLE_ACL}" == "Xon" ]]; then 334 cp src/extendrt/kernel/ascend/*.so package/mindspore_lite/lib/ 335 local dvpp_utils=minddata/kernels-dvpp-image/utils/libdvpp_utils.so 336 if [ -f ${dvpp_utils} ]; then 337 cp ${dvpp_utils} package/mindspore_lite/lib/ 338 fi 339 fi 340 if [ -f "${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libtransformer-shared.so" ]; then 341 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libtransformer-shared.so package/mindspore_lite/lib/ 342 fi 343 if [ -f "${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libtensorrt_plugin.so" ]; then 344 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libtensorrt_plugin.so package/mindspore_lite/lib/ 345 fi 346 if [ -f "${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libascend_ge_plugin.so" ]; then 347 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libascend_ge_plugin.so package/mindspore_lite/lib/ 348 fi 349 if [ -f "${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libllm_engine_plugin.so" ]; then 350 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/lib/libllm_engine_plugin.so package/mindspore_lite/lib/ 351 fi 352 else 353 if [[ "X${MSLITE_ENABLE_ACL}" == "Xon" ]]; then 354 cp src/litert/kernel/ascend/*.so package/mindspore_lite/lib/ 355 fi 356 cp src/*.so package/mindspore_lite/lib/ 357 fi 358 if [ -d "${INSTALL_PREFIX}/${pkg_name}/runtime/third_party/glog" ]; then 359 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/third_party/glog/*.so* package/mindspore_lite/lib/ 360 fi 361 if [ -d "${INSTALL_PREFIX}/${pkg_name}/runtime/third_party/dnnl" ]; then 362 cp ${INSTALL_PREFIX}/${pkg_name}/runtime/third_party/dnnl/*.so* package/mindspore_lite/lib/ 363 fi 364 if [ -d "${CPACK_PACKAGE_DIR}/${pkg_name}/tools/custom_kernels" ]; then 365 cp -rf ${CPACK_PACKAGE_DIR}/${pkg_name}/tools/custom_kernels package/mindspore_lite/ 366 fi 367 if [ -d "${INSTALL_PREFIX}/${pkg_name}/tools/converter/lib" ]; then 368 cp ${INSTALL_PREFIX}/${pkg_name}/tools/converter/lib/*.so* package/mindspore_lite/lib/ 369 fi 370 cp python/*.so package/mindspore_lite/lib/ 371 mkdir -pv package/mindspore_lite/include/registry/ 372 if [ -d "${INSTALL_PREFIX}/${pkg_name}/runtime/include/api" ]; then 373 cp -rf ${INSTALL_PREFIX}/${pkg_name}/runtime/include/api package/mindspore_lite/include/ 374 fi 375 if [ -d "${INSTALL_PREFIX}/${pkg_name}/runtime/include/mindapi" ]; then 376 cp -rf ${INSTALL_PREFIX}/${pkg_name}/runtime/include/mindapi package/mindspore_lite/include/ 377 fi 378 if [ -f "${INSTALL_PREFIX}/${pkg_name}/tools/converter/include/registry/converter_context.h" ]; then 379 cp ${INSTALL_PREFIX}/${pkg_name}/tools/converter/include/registry/converter_context.h package/mindspore_lite/include/registry/ 380 fi 381 if [ -f "${INSTALL_PREFIX}/${pkg_name}/tools/converter/include/converter.h" ]; then 382 cp ${INSTALL_PREFIX}/${pkg_name}/tools/converter/include/converter.h package/mindspore_lite/include/ 383 fi 384 cp .commit_id package/mindspore_lite/ 385 echo "__version__ = '${VERSION_STR}'" > package/mindspore_lite/version.py 386 cp ../python/setup.py package/ 387 cd package 388 rm -rf dist/mindspore_lite-*.whl 389 python3 setup.py bdist_wheel ${BASEPATH} 390 py_tags=`get_python_tag` 391 local whl_name=mindspore_lite-${VERSION_STR}-${py_tags}-linux_$1.whl 392 cp dist/mindspore_lite-*.whl ${BASEPATH}/output/${whl_name} 393 cd ${BASEPATH}/output/ 394 sha256sum ${whl_name} > ${whl_name}.sha256 395 else 396 echo -e "\e[31mPython3 not found, so Python API will not be compiled. \e[0m" 397 fi 398} 399 400build_lite() { 401 LITE_CMAKE_ARGS=${CMAKE_ARGS} 402 [ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/output 403 echo "============ Start building MindSpore Lite ${VERSION_STR} ============" 404 local local_lite_platform=${LITE_PLATFORM} 405 if [[ "${LITE_ENABLE_AAR}" == "on" ]]; then 406 local_lite_platform=$1 407 mkdir -pv ${BASEPATH}/mindspore/lite/build/java 408 cd ${BASEPATH}/mindspore/lite/build/ 409 [ -n "${BASEPATH}" ] && find . -maxdepth 1 | grep -v java | grep '/' | xargs -I {} rm -rf {} 410 else 411 if [[ "${INC_BUILD}" == "off" ]]; then 412 [ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/mindspore/lite/build 413 fi 414 mkdir -pv ${BASEPATH}/mindspore/lite/build 415 fi 416 cd ${BASEPATH}/mindspore/lite/build 417 write_commit_file 418 419 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DENABLE_ASAN=${ENABLE_ASAN} -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX}" 420 421 if [[ "$(uname)" == "Darwin" && "${local_lite_platform}" != "x86_64" ]]; then 422 LITE_CMAKE_ARGS=`echo $LITE_CMAKE_ARGS | sed 's/-DCMAKE_BUILD_TYPE=Debug/-DCMAKE_BUILD_TYPE=Release/g'` 423 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off -DMSLITE_ENABLE_NPU=off" 424 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 425 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DENABLE_BITCODE=0 -G Xcode" 426 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/cmake/lite_ios.cmake 427 fi 428 429 BRANCH_NAME=nnie_3516_r2.3_dev1 430 if [[ ("${MSLITE_REGISTRY_DEVICE}" == "Hi3516D" || "${TOOLCHAIN_NAME}" == "himix200") && "${local_lite_platform}" == "arm32" ]]; then 431 TOOLCHAIN_NAME="himix200" 432 MSLITE_REGISTRY_DEVICE=Hi3516D 433 check_Hi35xx 434 MSLITE_COMPILE_TWICE=ON 435 twice_target='benchmark micro_nnie' 436 elif [[ "${MSLITE_REGISTRY_DEVICE}" == "Hi3559A" && "${local_lite_platform}" == "arm64" ]]; then 437 TOOLCHAIN_NAME="himix100" 438 check_Hi35xx 439 MSLITE_COMPILE_TWICE=ON 440 twice_target='benchmark micro_nnie' 441 elif [[ "${MSLITE_REGISTRY_DEVICE}" == "SD3403" && "${local_lite_platform}" == "arm64" ]]; then 442 TOOLCHAIN_NAME="mix210" 443 MSLITE_COMPILE_TWICE=ON 444 twice_target=benchmark 445 elif [[ "${MSLITE_REGISTRY_DEVICE}" == "Hi3519A" && "${local_lite_platform}" == "arm32" ]]; then 446 TOOLCHAIN_NAME="himix200" 447 check_Hi35xx 448 MSLITE_COMPILE_TWICE=ON 449 twice_target='benchmark micro_nnie' 450 elif [[ ("${MSLITE_ENABLE_NNIE}" == "on" || "${MSLITE_REGISTRY_DEVICE}" == "Hi3516D") && "${local_lite_platform}" == "x86_64" ]]; then 451 MSLITE_REGISTRY_DEVICE=Hi3516D 452 elif [[ "${MSLITE_MICRO_PLATFORM}" == cortex-m* && "${local_lite_platform}" == "x86_64" ]]; then 453 TOOLCHAIN_NAME=${MSLITE_MICRO_PLATFORM} 454 fi 455 456 machine=`uname -m` 457 echo "machine:${machine}." 458 if [[ "${local_lite_platform}" == "arm32" ]]; then 459 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_ARM32=on -DENABLE_NEON=on" 460 if [ "$(uname)" == "Darwin" ]; then 461 # CPU : iOS-aarch32 462 pkg_name=mindspore-lite-${VERSION_STR}-ios-aarch32 463 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DARCHS=armv7;armv7s" 464 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 465 elif [[ "${TOOLCHAIN_NAME}" == "ohos-lite" ]]; then 466 # Hi3516D : OpenHarmony-aarch32 467 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/ohos-lite.toolchain.cmake 468 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=ohos-lite" 469 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 470 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off" 471 elif [[ "${TOOLCHAIN_NAME}" == "himix200" ]]; then 472 # Hi3516D : Linux-aarch32 473 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/himix200.toolchain.cmake 474 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=himix200" 475 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 476 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off" 477 elif [[ "${TOOLCHAIN_NAME}" == "ohos" ]]; then 478 pkg_name=mindspore-lite-${VERSION_STR}-ohos-arm32 479 CMAKE_TOOLCHAIN_FILE=${OHOS_NDK}/build/cmake/ohos.toolchain.cmake 480 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DCMAKE_OHOS_NDK=${OHOS_NDK} -DOHOS_ARCH=armeabi-v7a -DOHOS_STL=c++_static -DTOOLCHAIN_NAME=${TOOLCHAIN_NAME}" 481 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 482 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off" 483 else 484 # CPU : Android-aarch32 485 checkndk 486 if [ -n "${MS_CCACHE_PATH}" ]; then 487 echo "use ${MS_CCACHE_PATH} to speed up compilation." 488 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_CCACHE=${MS_CCACHE_PATH}" 489 fi 490 export PATH=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin:${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:${PATH} 491 CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake 492 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=full" 493 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on" 494 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_NATIVE_API_LEVEL=19 -DANDROID_NDK=${ANDROID_NDK} -DANDROID_ABI=armeabi-v7a -DANDROID_TOOLCHAIN_NAME=clang -DANDROID_STL=${MSLITE_ANDROID_STL}" 495 fi 496 elif [[ "${local_lite_platform}" == "arm64" ]]; then 497 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_ARM64=on -DENABLE_NEON=on" 498 if [ "$(uname)" == "Darwin" ]; then 499 # CPU : iOS-aarch64 500 pkg_name=mindspore-lite-${VERSION_STR}-ios-aarch64 501 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DARCHS=arm64" 502 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on" 503 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 504 elif [[ "${TOOLCHAIN_NAME}" == "himix100" ]]; then 505 # Hi3559A : 506 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/himix100.toolchain.cmake 507 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=himix100" 508 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 509 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off" 510 elif [[ "${TOOLCHAIN_NAME}" == "mix210" ]]; then 511 # SD3403 : 512 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/mix210.toolchain.cmake 513 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=mix210" 514 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 515 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off" 516 elif [[ "${TOOLCHAIN_NAME}" == "ohos" ]]; then 517 pkg_name=mindspore-lite-${VERSION_STR}-ohos-aarch64 518 CMAKE_TOOLCHAIN_FILE=${OHOS_NDK}/build/cmake/ohos.toolchain.cmake 519 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DCMAKE_OHOS_NDK=${OHOS_NDK} -DOHOS_ARCH=arm64-v8a -DOHOS_STL=c++_static -DTOOLCHAIN_NAME=${TOOLCHAIN_NAME}" 520 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 521 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off" 522 elif [[ "${AOS_SDK}" ]]; then 523 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=full" 524 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTARGET_AOS_ARM=on" 525 if [[ "${TOOLCHAIN_NAME}" == "gcc" ]]; then 526 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=gcc" 527 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off" 528 fi 529 else 530 if [[ "${machine}" == "aarch64" ]]; then 531 # CPU : Linux-aarch64 532 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMACHINE_LINUX_ARM64=on" 533 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_TRAIN=off" 534 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_GPU_BACKEND=off" 535 else 536 # CPU/GPU : Android-aarch64 537 checkndk 538 if [ -n "${MS_CCACHE_PATH}" ]; then 539 echo "use ${MS_CCACHE_PATH} to speed up compilation." 540 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_CCACHE=${MS_CCACHE_PATH}" 541 fi 542 export PATH=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin:${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:${PATH} 543 CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake 544 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_NATIVE_API_LEVEL=19 -DANDROID_NDK=${ANDROID_NDK} -DANDROID_ABI=arm64-v8a -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang -DANDROID_STL=${MSLITE_ANDROID_STL}" 545 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=full" 546 fi 547 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on" 548 fi 549 elif [[ "$(uname)" == "Darwin" ]]; then 550 pkg_name=mindspore-lite-${VERSION_STR}-ios-simulator 551 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/cmake/lite_ios.cmake 552 LITE_CMAKE_ARGS=`echo $LITE_CMAKE_ARGS | sed 's/-DCMAKE_BUILD_TYPE=Debug/-DCMAKE_BUILD_TYPE=Release/g'` 553 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM=SIMULATOR64 -DPLATFORM_ARM64=off -DENABLE_NEON=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off -DMSLITE_ENABLE_NPU=off" 554 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off" 555 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_TOOLS=off -DMSLITE_ENABLE_CONVERTER=off" 556 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -G Xcode .." 557 else 558 if [[ "${machine}" == "aarch64" ]]; then 559 echo "Use the '-I arm64' command when compiling MindSpore Lite on an aarch64 architecture system." 560 exit 1 561 fi 562 if [[ "${TOOLCHAIN_NAME}" == cortex-m* ]]; then 563 CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/${TOOLCHAIN_NAME}.toolchain.cmake 564 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=${TOOLCHAIN_NAME}" 565 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_MCU=on" 566 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_MINDDATA_IMPLEMENT=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off -DMSLITE_ENABLE_TOOLS=off" 567 else 568 # CPU : Linux-x86_64 569 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_X86_64=on" 570 fi 571 fi 572 573 if [[ "X$CMAKE_TOOLCHAIN_FILE" != "X" ]]; then 574 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" 575 fi 576 if [[ "X$MSLITE_REGISTRY_DEVICE" != "X" ]]; then 577 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_REGISTRY_DEVICE=${MSLITE_REGISTRY_DEVICE}" 578 fi 579 if [[ "X$MSLITE_COMPILE_TWICE" != "X" ]]; then 580 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_COMPILE_TWICE=${MSLITE_COMPILE_TWICE}" 581 fi 582 if [[ ("${local_lite_platform}" == "arm64" || "${local_lite_platform}" == "arm32") && "${TOOLCHAIN_NAME}" != "ohos" ]]; then 583 echo "default link libc++_static.a, export MSLITE_ANDROID_STL=c++_shared to link libc++_shared.so" 584 fi 585 if [[ ("X${MSLITE_ENABLE_CLOUD_FUSION_INFERENCE}" != "Xon") && ("X${MSLITE_ENABLE_CLOUD_INFERENCE}" != "Xon") ]]; then 586 ENABLE_AKG="off" 587 fi 588 if [[ ( ("${local_lite_platform}" == "x86_64" && "${machine}" == "x86_64") || ("${local_lite_platform}" == "arm64" && ${machine} == "aarch64") ) && ("${ENABLE_AKG}" == "on") ]]; then 589 akg_package_path="" 590 graph_kernel_cfg="" 591 build_akg ${machine} 592 LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} ${graph_kernel_cfg} -DAKG_PKG_PATH=${akg_package_path}" 593 fi 594 echo "cmake ${LITE_CMAKE_ARGS} ${BASEPATH}/mindspore/lite" 595 cmake ${LITE_CMAKE_ARGS} "${BASEPATH}/mindspore/lite" 596 597 if [[ "$(uname)" == "Darwin" && "${local_lite_platform}" != "x86_64" ]]; then 598 xcodebuild ONLY_ACTIVE_ARCH=NO -configuration Release -scheme mindspore-lite_static -target mindspore-lite_static -sdk iphoneos -quiet -UseModernBuildSystem=YES 599 elif [[ "$(uname)" == "Darwin" && "${local_lite_platform}" == "x86_64" ]]; then 600 xcodebuild ONLY_ACTIVE_ARCH=NO -configuration Release -scheme mindspore-lite_static -target mindspore-lite_static -sdk iphonesimulator -quiet -UseModernBuildSystem=YES 601 else 602 make -j$THREAD_NUM && make install 603 if [[ "X$MSLITE_COMPILE_TWICE" == "XON" ]]; then 604 if [[ "X$MSLITE_ENABLE_TOOLS" != "X" ]]; then 605 MSLITE_ENABLE_TOOLS=$(echo $MSLITE_ENABLE_TOOLS | tr '[a-z]' '[A-Z]') 606 fi 607 if [[ "X$MSLITE_ENABLE_TOOLS" != "XOFF" ]]; then 608 LITE_CMAKE_ARGS=`echo $LITE_CMAKE_ARGS | sed 's/-DMSLITE_COMPILE_TWICE=ON/-DMSLITE_COMPILE_TWICE=OFF/g'` 609 cp -r ${INSTALL_PREFIX}/mindspore*/runtime ${BASEPATH}/mindspore/lite/providers 610 PKG_PATH=${INSTALL_PREFIX}/`ls ${INSTALL_PREFIX}/` 611 echo "cmake ${LITE_CMAKE_ARGS} -DPKG_PATH=${PKG_PATH} ${BASEPATH}/mindspore/lite" 612 cmake ${LITE_CMAKE_ARGS} -DPKG_PATH=${PKG_PATH} "${BASEPATH}/mindspore/lite" 613 cmake --build "${BASEPATH}/mindspore/lite/build" --target ${twice_target} -j$THREAD_NUM 614 make install 615 fi 616 fi 617 618 make package 619 get_cpack_dir 620 621 local package_wheel=${MSLITE_ENABLE_PACKAGE_WHEEL} 622 if [[ ("${MSLITE_ENABLE_CLOUD_FUSION_INFERENCE}" == "on") || ("${MSLITE_ENABLE_CLOUD_INFERENCE}" == "on") || ("${MSLITE_ENABLE_SERVER_INFERENCE}" == "on") ]] && [[ ${MSLITE_ENABLE_PACKAGE_WHEEL} == "" ]]; then 623 package_wheel=on 624 fi 625 if [[ "${local_lite_platform}" == "x86_64" && "X$CMAKE_TOOLCHAIN_FILE" == "X" ]]; then 626 if [[ "${package_wheel}" == "on" ]]; then 627 build_python_wheel_package "x86_64" 628 fi 629 if [ "${JAVA_HOME}" ]; then 630 echo -e "\e[31mJAVA_HOME=$JAVA_HOME \e[0m" 631 build_lite_jni_and_jar "${CMAKE_ARGS}" "x86_64" 632 else 633 echo -e "\e[31mJAVA_HOME is not set, so jni and jar packages will not be compiled \e[0m" 634 echo -e "\e[31mIf you want to compile the JAR package, please set $JAVA_HOME. For example: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 \e[0m" 635 fi 636 elif [[ "${local_lite_platform}" == "arm64" ]] && [[ "${machine}" == "aarch64" ]]; then 637 if [[ "${package_wheel}" == "on" ]]; then 638 build_python_wheel_package "aarch64" 639 fi 640 if [ "${JAVA_HOME}" ]; then 641 echo -e "\e[31mJAVA_HOME=$JAVA_HOME \e[0m" 642 build_lite_jni_and_jar "${CMAKE_ARGS}" "aarch64" 643 else 644 echo -e "\e[31mJAVA_HOME is not set, so jni and jar packages will not be compiled \e[0m" 645 echo -e "\e[31mIf you want to compile the JAR package, please set $JAVA_HOME. For example: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 \e[0m" 646 fi 647 fi 648 fi 649 if [[ $? -ne 0 ]]; then 650 echo "---------------- mindspore lite: build failed ----------------" 651 exit 1 652 else 653 if [ "$(uname)" == "Darwin" ]; then 654 mkdir -p ${BASEPATH}/output 655 cp -r ${BASEPATH}/mindspore/lite/build/src/Release-*/mindspore-lite.framework ${BASEPATH}/output/mindspore-lite.framework 656 # schema files are copied in shell script since they will not generated until xcodebuild is executed. 657 local schema_path=${BASEPATH}/output/mindspore-lite.framework/Headers/include/schema 658 mkdir -p ${schema_path} 659 cp ${BASEPATH}/mindspore/lite/build/schema/model_generated.h ${schema_path} 660 cp ${BASEPATH}/mindspore/lite/build/schema/ops_generated.h ${schema_path} 661 cp ${BASEPATH}/mindspore/lite/build/schema/ops_types_generated.h ${schema_path} 662 if [[ "${MSLITE_ENABLE_COREML}" == "ON" || "${MSLITE_ENABLE_COREML}" == "on" ]]; then 663 local protobuf_arm_lib=${BASEPATH}/mindspore/lite/build/_deps/protobuf_arm-src/_build/libprotobuf-lite.a 664 if [ ! -e "$protobuf_arm_lib" ]; then 665 local protobuf_arm_libpath=$(grep protobuf_arm_LIBPATH ${BASEPATH}/mindspore/lite/build/CMakeCache.txt | cut -d'=' -f2) 666 protobuf_arm_lib="${protobuf_arm_libpath}/libprotobuf-lite.a" 667 fi 668 if [ ! -e "$protobuf_arm_lib" ]; then 669 echo "failed to find libprotobuf-lite.a to build ios package" 670 exit 1 671 fi 672 mkdir -p ${BASEPATH}/output/mindspore-lite.framework/third_party/protobuf 673 cp $protobuf_arm_lib ${BASEPATH}/output/mindspore-lite.framework/third_party/protobuf/ 674 fi 675 cd ${BASEPATH}/output 676 tar -zcvf ${pkg_name}.tar.gz mindspore-lite.framework/ 677 sha256sum ${pkg_name}.tar.gz > ${pkg_name}.tar.gz.sha256 678 rm -r mindspore-lite.framework 679 else 680 mv ${INSTALL_PREFIX}/*.tar.gz* ${BASEPATH}/output/ 681 fi 682 683 if [[ "${local_lite_platform}" == "x86_64" ]]; then 684 if [[ "${MSLITE_ENABLE_TESTCASES}" == "ON" || "${MSLITE_ENABLE_TESTCASES}" == "on" ]]; then 685 mkdir -pv ${BASEPATH}/mindspore/lite/test/do_test || true 686 if [[ ! "${MSLITE_ENABLE_CONVERTER}" || "${MSLITE_ENABLE_CONVERTER}" == "ON" || "${MSLITE_ENABLE_CONVERTER}" == "on" ]]; then 687 cp ${INSTALL_PREFIX}/mindspore-lite*/tools/converter/lib/*.so* ${BASEPATH}/mindspore/lite/test/do_test || true 688 fi 689 cp ${INSTALL_PREFIX}/mindspore-lite*/runtime/lib/*.so* ${BASEPATH}/mindspore/lite/test/do_test || true 690 if [ -d "${INSTALL_PREFIX}/mindspore-lite*/runtime/third_party/glog" ]; then 691 cp ${INSTALL_PREFIX}/mindspore-lite*/runtime/third_party/glog/*.so* ${BASEPATH}/mindspore/lite/test/do_test || true 692 fi 693 if [[ ! "${MSLITE_ENABLE_TRAIN}" || "${MSLITE_ENABLE_TRAIN}" == "ON" || "${MSLITE_ENABLE_TRAIN}" == "on" ]]; then 694 cp ${INSTALL_PREFIX}/mindspore-lite*/runtime/third_party/libjpeg-turbo/lib/*.so* ${BASEPATH}/mindspore/lite/test/do_test || true 695 fi 696 fi 697 fi 698 699 rm -rf ${INSTALL_PREFIX:?}/ 700 if [[ "X$MSLITE_REGISTRY_DEVICE" != "X" ]] && [[ "${MSLITE_REGISTRY_DEVICE}" != "SD3403" ]]; then 701 local compile_nnie_script=${BASEPATH}/mindspore/lite/tools/providers/NNIE/Hi3516D/compile_nnie.sh 702 cd ${BASEPATH}/../ 703 if [[ "${local_lite_platform}" == "x86_64" ]]; then 704 bash ${compile_nnie_script} -I ${local_lite_platform} -b ${BRANCH_NAME} -j $THREAD_NUM 705 fi 706 if [[ $? -ne 0 ]]; then 707 echo "compile ${local_lite_platform} for nnie failed." 708 exit 1 709 fi 710 fi 711 echo "---------------- mindspore lite: build success ----------------" 712 fi 713} 714 715build_lite_arm64_and_jni() { 716 local ARM64_CMAKE_ARGS=${CMAKE_ARGS} 717 build_lite "arm64" 718 # copy arm64 so 719 local is_train=on 720 local pkg_name=mindspore-lite-${VERSION_STR}-android-aarch64 721 cd "${BASEPATH}/mindspore/lite/build" 722 723 rm -rf ${pkg_name} 724 tar -zxf ${BASEPATH}/output/${pkg_name}.tar.gz 725 rm -rf ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ && mkdir -p ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 726 rm -rf ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ && mkdir -p ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 727 cp ./${pkg_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 728 cp ./${pkg_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 729 local train_so=$pkg_name/runtime/lib/libmindspore-lite-train.so 730 if [ ! -f "$train_so" ]; then 731 echo "not exist" 732 is_train=off 733 fi 734 if [[ "X$is_train" = "Xon" ]]; then 735 cp ./${pkg_name}/runtime/lib/libmindspore-lite*so* ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 736 cp ./${pkg_name}/runtime/lib/libmindspore-lite*so* ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 737 fi 738 local minddata_so=${pkg_name}/runtime/lib/libminddata-lite.so 739 if [ -e "${minddata_so}" ]; then 740 cp ./${pkg_name}/runtime/lib/libminddata-lite.so ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 741 cp ./${pkg_name}/runtime/lib/libminddata-lite.so ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 742 fi 743 local jpeg_turbo_dir=${pkg_name}/runtime/third_party/libjpeg-turbo/lib 744 if [ -e "$jpeg_turbo_dir" ]; then 745 cp ./${pkg_name}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 746 cp ./${pkg_name}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 747 fi 748 local npu_so=${pkg_name}/runtime/third_party/hiai_ddk/lib/libhiai.so 749 if [ -e "${npu_so}" ]; then 750 cp ./${pkg_name}/runtime/third_party/hiai_ddk/lib/*.so* ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 751 cp ./${pkg_name}/runtime/third_party/hiai_ddk/lib/*.so* ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 752 fi 753 # build jni so 754 [ -n "${BASEPATH}" ] && rm -rf java/jni && mkdir -pv java/jni 755 cd java/jni 756 if [ -n "${MS_CCACHE_PATH}" ]; then 757 echo "use ${MS_CCACHE_PATH} to speed up compilation." 758 ARM64_CMAKE_ARGS="$ARM64_CMAKE_ARGS -DANDROID_CCACHE=${MS_CCACHE_PATH}" 759 fi 760 cmake ${ARM64_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM64=on \ 761 -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ 762 -DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="arm64-v8a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ 763 -DANDROID_STL=${MSLITE_ANDROID_STL} "${LITE_JAVA_PATH}/native/" 764 make -j$THREAD_NUM 765 if [[ $? -ne 0 ]]; then 766 echo "---------------- mindspore lite: build jni arm64 failed----------------" 767 exit 1 768 fi 769 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 770 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 771 if [[ "X$is_train" = "Xon" ]]; then 772 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/ 773 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/native/libs/arm64-v8a/ 774 fi 775} 776 777build_lite_arm32_and_jni() { 778 local ARM32_CMAKE_ARGS=${CMAKE_ARGS} 779 build_lite "arm32" 780 # copy arm32 so 781 local is_train=on 782 local pkg_name=mindspore-lite-${VERSION_STR}-android-aarch32 783 cd "${BASEPATH}/mindspore/lite/build" 784 785 rm -rf ${pkg_name} 786 tar -zxf ${BASEPATH}/output/${pkg_name}.tar.gz 787 rm -rf ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ && mkdir -pv ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 788 rm -rf ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ && mkdir -pv ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 789 cp ./${pkg_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 790 cp ./${pkg_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 791 local train_so=$pkg_name/runtime/lib/libmindspore-lite-train.so 792 if [ ! -f "$train_so" ]; then 793 echo "not exist" 794 is_train=off 795 fi 796 if [[ "X$is_train" = "Xon" ]]; then 797 cp ./${pkg_name}/runtime/lib/libmindspore-lite*so* ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 798 cp ./${pkg_name}/runtime/lib/libmindspore-lite*so* ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 799 fi 800 local minddata_so=${pkg_name}/runtime/lib/libminddata-lite.so 801 if [ -e "${minddata_so}" ]; then 802 cp ./${pkg_name}/runtime/lib/libminddata-lite.so ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 803 cp ./${pkg_name}/runtime/lib/libminddata-lite.so ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 804 fi 805 local jpeg_turbo_dir=${pkg_name}/runtime/third_party/libjpeg-turbo/lib 806 if [ -e "$jpeg_turbo_dir" ]; then 807 cp ./${pkg_name}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 808 cp ./${pkg_name}/runtime/third_party/libjpeg-turbo/lib/*.so* ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 809 fi 810 local npu_so=$pkg_name/runtime/third_party/hiai_ddk/lib/libhiai.so 811 if [ -e "$npu_so" ]; then 812 cp ./${pkg_name}/runtime/third_party/hiai_ddk/lib/*.so* ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 813 cp ./${pkg_name}/runtime/third_party/hiai_ddk/lib/*.so* ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 814 fi 815 # build jni so 816 [ -n "${BASEPATH}" ] && rm -rf java/jni && mkdir -pv java/jni 817 cd java/jni 818 if [ -n "${MS_CCACHE_PATH}" ]; then 819 echo "use ${MS_CCACHE_PATH} to speed up compilation." 820 ARM32_CMAKE_ARGS="$ARM32_CMAKE_ARGS -DANDROID_CCACHE=${MS_CCACHE_PATH}" 821 fi 822 cmake ${ARM32_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM32=on \ 823 -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \ 824 -DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="armeabi-v7a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \ 825 -DANDROID_STL=${MSLITE_ANDROID_STL} "${LITE_JAVA_PATH}/native" 826 make -j$THREAD_NUM 827 if [[ $? -ne 0 ]]; then 828 echo "---------------- mindspore lite: build jni arm32 failed----------------" 829 exit 1 830 fi 831 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 832 cp ./libmindspore-lite-jni.so ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 833 if [[ "X$is_train" = "Xon" ]]; then 834 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/java/app/libs/armeabi-v7a/ 835 cp ./libmindspore-lite-train-jni.so ${LITE_JAVA_PATH}/native/libs/armeabi-v7a/ 836 fi 837} 838 839build_aar() { 840 if [[ "X${INC_BUILD}" == "Xoff" ]]; then 841 [ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/mindspore/lite/build 842 fi 843 cd ${LITE_JAVA_PATH}/java 844 rm -rf gradle .gradle gradlew gradlew.bat 845 local gradle_version="" 846 gradle_version=`gradle --version | grep Gradle | awk '{print$2}'` 847 if [[ ${gradle_version} == '6.6.1' ]]; then 848 gradle_command=gradle 849 else 850 gradle wrapper --gradle-version 6.6.1 --distribution-type all 851 gradle_command=${LITE_JAVA_PATH}/java/gradlew 852 fi 853 # build new java api module 854 ${gradle_command} clean -p ${LITE_JAVA_PATH}/ 855 ${gradle_command} build -p ${LITE_JAVA_PATH}/ -x test 856 857 # build aar 858 build_lite_arm64_and_jni 859 build_lite_arm32_and_jni 860 861 cp ${LITE_JAVA_PATH}/build/libs/mindspore-lite-java.jar ${LITE_JAVA_PATH}/java/app/libs 862 # build aar 863 ${gradle_command} clean -p ${LITE_JAVA_PATH}/java/app 864 ${gradle_command} assembleRelease -p ${LITE_JAVA_PATH}/java/app 865 866 cd ${LITE_JAVA_PATH}/java/app/build 867 [ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/output/*.tar.gz* 868 local minddata_so=${LITE_JAVA_PATH}/java/app/libs/arm64-v8a/libminddata-lite.so 869 if [ -e "${minddata_so}" ]; then 870 cp ${LITE_JAVA_PATH}/java/app/build/outputs/aar/mindspore-lite.aar ${BASEPATH}/output/mindspore-lite-full-${VERSION_STR}.aar 871 cd ${BASEPATH}/output 872 sha256sum mindspore-lite-full-${VERSION_STR}.aar > mindspore-lite-full-${VERSION_STR}.aar.sha256 873 else 874 cp ${LITE_JAVA_PATH}/java/app/build/outputs/aar/mindspore-lite.aar ${BASEPATH}/output/mindspore-lite-${VERSION_STR}.aar 875 cd ${BASEPATH}/output 876 sha256sum mindspore-lite-${VERSION_STR}.aar > mindspore-lite-${VERSION_STR}.aar.sha256 877 fi 878} 879 880update_submodule() 881{ 882 if [[ "${MSLITE_ENABLE_ACL}" == "on" ]] || [[ "${AOS_SDK}" ]]; then 883 git submodule update --init graphengine 884 cd "${BASEPATH}/graphengine" 885 git submodule update --init 910/metadef 886 fi 887 cd "${BASEPATH}" 888 if [[ ("X$ENABLE_AKG" == "Xon" && (("${MSLITE_ENABLE_CLOUD_FUSION_INFERENCE}" == "on") || ("${MSLITE_ENABLE_CLOUD_INFERENCE}" == "on"))) ]]; then 889 if [[ ("${MSLITE_ENABLE_ACL}" == "on") ]]; then 890 git submodule update --init akg 891 else 892 GIT_LFS_SKIP_SMUDGE=1 git submodule update --init akg 893 fi 894 fi 895} 896 897build_lite_x86_64_aarch64_jar() 898{ 899 echo "build_lite_x86_64_aarch64_jar start." 900 if [[ ! -f ${SERVER_X86_64_PACKAGE_FILE} ]] || [[ ! -f ${SERVER_AARCH64_PACKAGE_FILE} ]]; then 901 echo "x86_64_package aarch64_package file not exist." 902 exit 1 903 fi 904 905 local x86_64_base_path="" 906 x86_64_base_path=${SERVER_X86_64_PACKAGE_FILE%/*} 907 local aarch64_base_path="" 908 aarch64_base_path=${SERVER_AARCH64_PACKAGE_FILE%/*} 909 echo "x86_64_base_path: "${x86_64_base_path} 910 echo "aarch64_base_path: "${aarch64_base_path} 911 912 local x86_64_package_name="" 913 local aarch64_package_name="" 914 x86_64_package_name=`basename ${SERVER_X86_64_PACKAGE_FILE} '.tar.gz'` 915 aarch64_package_name=`basename ${SERVER_AARCH64_PACKAGE_FILE} '.tar.gz'` 916 echo "x86_64_package_name: "${x86_64_package_name} 917 echo "aarch64_package_name: "${aarch64_package_name} 918 919 # unzip tar.gz, extract native libs(libmindspore-lite.so,libmindspore-lite-jni.so) 920 rm -rf ${x86_64_base_path}/tmp ${aarch64_base_path}/tmp 921 mkdir ${x86_64_base_path}/tmp ${aarch64_base_path}/tmp 922 tar -zxvf ${SERVER_X86_64_PACKAGE_FILE} -C ${x86_64_base_path}/tmp 923 tar -zxvf ${SERVER_AARCH64_PACKAGE_FILE} -C ${aarch64_base_path}/tmp 924 925 LITE_JAVA_PATH=${LITE_BASEPATH}/java 926 local LITE_JAVA_NATIVE_RESOURCE_PATH=${LITE_JAVA_PATH}/src/main/resources/com/mindspore/lite 927 rm -f ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_x86_64/*.so* 928 rm -f ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_aarch64/*.so* 929 cp ${x86_64_base_path}/tmp/${x86_64_package_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_x86_64/ 930 cp ${x86_64_base_path}/tmp/${x86_64_package_name}/runtime/lib/libmindspore-lite-jni.so ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_x86_64/ 931 cp ${aarch64_base_path}/tmp/${aarch64_package_name}/runtime/lib/libmindspore-lite.so ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_aarch64/ 932 cp ${aarch64_base_path}/tmp/${aarch64_package_name}/runtime/lib/libmindspore-lite-jni.so ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_aarch64/ 933 934 if [ -f "${x86_64_base_path}/tmp/${x86_64_package_name}/runtime/third_party/glog/libmindspore_glog.so.0" ]; then 935 cp ${x86_64_base_path}/tmp/${x86_64_package_name}/runtime/third_party/glog/libmindspore_glog.so* ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_x86_64/libmindspore_glog.so 936 fi 937 938 if [ -f "${aarch64_base_path}/tmp/${aarch64_package_name}/runtime/third_party/glog/libmindspore_glog.so.0" ]; then 939 cp ${aarch64_base_path}/tmp/${aarch64_package_name}/runtime/third_party/glog/libmindspore_glog.so* ${LITE_JAVA_NATIVE_RESOURCE_PATH}/linux_aarch64/libmindspore_glog.so 940 fi 941 # compile jar package 942 rm -rf ${LITE_JAVA_PATH}/build 943 # build jar 944 local gradle_version="" 945 gradle_version=`gradle --version | grep Gradle | awk '{print$2}'` 946 if [[ ${gradle_version} == '6.6.1' ]]; then 947 gradle_command=gradle 948 else 949 gradle wrapper --gradle-version 6.6.1 --distribution-type all 950 gradle_command=${LITE_JAVA_PATH}/java/gradlew 951 fi 952 953 ${gradle_command} clean -p ${LITE_JAVA_PATH}/ 954 if [[ "${ENABLE_ASAN}" == "ON" || "${ENABLE_ASAN}" == "on" ]] ; then 955 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ -x test --info 956 else 957 if [[ "${MSLITE_ENABLE_TESTCASES}" == "ON" || "${MSLITE_ENABLE_TESTCASES}" == "on" ]] ; then 958 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${LITE_JAVA_PATH}/native/libs/linux_x86/ 959 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ --info 960 else 961 ${gradle_command} releaseJar -p ${LITE_JAVA_PATH}/ -x test --info 962 fi 963 fi 964 echo "compile jar success." 965 966 # update jar package, compress tar.gz, update tar.gz 967 cp ${LITE_JAVA_PATH}/build/lib/jar/mindspore-lite-java.jar ${x86_64_base_path}/tmp/${x86_64_package_name}/runtime/lib/ -f 968 cp ${LITE_JAVA_PATH}/build/lib/jar/mindspore-lite-java.jar ${aarch64_base_path}/tmp/${aarch64_package_name}/runtime/lib/ -f 969 970 cd ${x86_64_base_path}/tmp 971 tar -zcvf ${x86_64_package_name}.tar.gz ${x86_64_package_name}/ 972 sha256sum ${x86_64_package_name}.tar.gz > ${x86_64_package_name}.tar.gz.sha256 973 rm -f ../${x86_64_package_name}.tar.gz ../${x86_64_package_name}.tar.gz.sha256 974 mv ${x86_64_package_name}.tar.gz ../ 975 mv ${x86_64_package_name}.tar.gz.sha256 ../ 976 977 cd ${aarch64_base_path}/tmp 978 tar -zcvf ${aarch64_package_name}.tar.gz ${aarch64_package_name}/ 979 sha256sum ${aarch64_package_name}.tar.gz > ${aarch64_package_name}.tar.gz.sha256 980 rm -f ../${aarch64_package_name}.tar.gz ../${aarch64_package_name}.tar.gz.sha256 981 mv ${aarch64_package_name}.tar.gz ../ 982 mv ${aarch64_package_name}.tar.gz.sha256 ../ 983 984 cd ${LITE_BASEPATH} 985 rm -rf ${x86_64_base_path}/tmp 986 rm -rf ${aarch64_base_path}/tmp 987 java -version 988} 989 990LITE_BASEPATH=$(cd "$(dirname $0)"; pwd) 991echo "LITE_BASEPATH="${LITE_BASEPATH} 992if [[ -z "${BASEPATH}" ]]; then 993 BASEPATH=${LITE_BASEPATH}/../.. 994fi 995 996INSTALL_PREFIX=${BASEPATH}/output/tmp 997LITE_JAVA_PATH=${BASEPATH}/mindspore/lite/java 998 999update_submodule 1000 1001CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_VERBOSE=${ENABLE_VERBOSE}" 1002if [[ "${DEBUG_MODE}" == "on" ]]; then 1003 CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Debug " 1004else 1005 CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Release " 1006fi 1007 1008if [[ "X$ENABLE_FAST_HASH_TABLE" == "Xon" ]]; then 1009 CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_FAST_HASH_TABLE=ON" 1010else 1011 CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_FAST_HASH_TABLE=OFF" 1012fi 1013 1014get_version 1015CMAKE_ARGS="${CMAKE_ARGS} -DVERSION_STR=${VERSION_STR}" 1016 1017if [[ "X$LITE_ENABLE_AAR" = "Xon" ]]; then 1018 build_aar 1019elif [[ "X$LITE_PLATFORM" != "X" ]]; then 1020 build_lite 1021else 1022 echo "Invalid parameter" 1023fi 1024 1025if [[ -n "${SERVER_X86_64_PACKAGE_FILE}" ]] && [[ -n "${SERVER_AARCH64_PACKAGE_FILE}" ]]; then 1026 build_lite_x86_64_aarch64_jar 1027fi 1028