You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

lite_release_package.sh 6.9 kB

5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #!/bin/bash
  2. # Copyright 2020 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. set -e
  17. function verify_every_file() {
  18. for full_file in "$1"/*
  19. do
  20. if [ -d ${full_file} ]
  21. then
  22. verify_every_file ${full_file} $2
  23. else
  24. echo "check: ${full_file}"
  25. exist_and_equal="false"
  26. src_sha256=`sha256sum ${full_file} | cut -d" " -f1`
  27. file_name=$(basename ${full_file})
  28. find_result=`find $2 -name ${file_name} -type f`
  29. for same_name_file in ${find_result}
  30. do
  31. dst_sha256=`sha256sum ${same_name_file} | cut -d" " -f1`
  32. if [ ${src_sha256} == ${dst_sha256} ]
  33. then
  34. echo " dst: ${same_name_file}"
  35. exist_and_equal="true"
  36. fi
  37. done
  38. if [ ${exist_and_equal} == "false" ]
  39. then
  40. echo " check failed!"
  41. exit 1
  42. fi
  43. fi
  44. done
  45. }
  46. function android_release_package()
  47. {
  48. for name in "train" "inference"
  49. do
  50. src_arm64_pkg_name="mindspore-lite-${version}-${name}-android-aarch64"
  51. src_arm32_pkg_name="mindspore-lite-${version}-${name}-android-aarch32"
  52. dst_android_pkg_name="mindspore-lite-${version}-${name}-android"
  53. tar -xzf ${input_path}/android_aarch64/${src_arm64_pkg_name}.tar.gz
  54. tar -xzf ${input_path}/android_aarch32/${src_arm32_pkg_name}.tar.gz
  55. # ARM32 and ARM64 have the same header file.
  56. mkdir -p ${dst_android_pkg_name}/third_party
  57. mkdir -p ${dst_android_pkg_name}/minddata/
  58. cp -r ${src_arm64_pkg_name}/include/ ${dst_android_pkg_name}/
  59. cp -r ${src_arm64_pkg_name}/third_party/flatbuffers/ ${dst_android_pkg_name}/third_party/
  60. cp -r ${src_arm64_pkg_name}/minddata/include/ ${dst_android_pkg_name}/minddata/
  61. # Executable files and dynamic libraries are different in different architectures.
  62. mkdir -p ${dst_android_pkg_name}/benchmark/aarch64/
  63. mkdir -p ${dst_android_pkg_name}/benchmark/aarch32/
  64. mkdir -p ${dst_android_pkg_name}/lib/aarch64/
  65. mkdir -p ${dst_android_pkg_name}/lib/aarch32/
  66. mkdir -p ${dst_android_pkg_name}/minddata/lib/aarch64/
  67. mkdir -p ${dst_android_pkg_name}/minddata/lib/aarch32/
  68. cp ${src_arm64_pkg_name}/benchmark/* ${dst_android_pkg_name}/benchmark/aarch64/
  69. cp ${src_arm32_pkg_name}/benchmark/* ${dst_android_pkg_name}/benchmark/aarch32/
  70. cp ${src_arm64_pkg_name}/lib/* ${dst_android_pkg_name}/lib/aarch64/
  71. cp ${src_arm32_pkg_name}/lib/* ${dst_android_pkg_name}/lib/aarch32/
  72. cp ${src_arm64_pkg_name}/minddata/lib/* ${dst_android_pkg_name}/minddata/lib/aarch64/
  73. cp ${src_arm32_pkg_name}/minddata/lib/* ${dst_android_pkg_name}/minddata/lib/aarch32/
  74. if [ ${name} == "train" ]
  75. then
  76. mkdir -p ${dst_android_pkg_name}/benchmark_train/aarch64/
  77. mkdir -p ${dst_android_pkg_name}/benchmark_train/aarch32/
  78. mkdir -p ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch64/
  79. mkdir -p ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch32/
  80. cp ${src_arm64_pkg_name}/benchmark_train/* ${dst_android_pkg_name}/benchmark_train/aarch64/
  81. cp ${src_arm32_pkg_name}/benchmark_train/* ${dst_android_pkg_name}/benchmark_train/aarch32/
  82. cp ${src_arm64_pkg_name}/minddata/third_party/libjpeg-turbo/lib/* ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch64/
  83. cp ${src_arm32_pkg_name}/minddata/third_party/libjpeg-turbo/lib/* ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch32/
  84. fi
  85. mkdir -p ${dst_android_pkg_name}/third_party/hiai_ddk/lib/aarch64/
  86. cp -r ${src_arm64_pkg_name}/third_party/hiai_ddk/lib/* ${dst_android_pkg_name}/third_party/hiai_ddk/lib/aarch64/
  87. if [ ${name} == "inference" ]
  88. then
  89. # Copy java runtime to Android package
  90. cp ${input_path}/aar/* ${dst_android_pkg_name}
  91. fi
  92. mkdir -p ${output_path}/release/android/
  93. tar -czf ${output_path}/release/android/${dst_android_pkg_name}.tar.gz ${dst_android_pkg_name}
  94. cd ${output_path}/release/android/
  95. sha256sum ${dst_android_pkg_name}.tar.gz > ${dst_android_pkg_name}.tar.gz.sha256
  96. cd -
  97. verify_every_file ${src_arm64_pkg_name} ${dst_android_pkg_name}
  98. verify_every_file ${src_arm32_pkg_name} ${dst_android_pkg_name}
  99. rm -rf ${src_arm64_pkg_name}
  100. rm -rf ${src_arm32_pkg_name}
  101. rm -rf ${dst_android_pkg_name}
  102. done
  103. }
  104. function linux_release_package()
  105. {
  106. mkdir -p ${output_path}/release/linux/
  107. cp ${input_path}/ubuntu_x86/mindspore-lite-${version}-converter-* ${output_path}/release/linux/
  108. cp ${input_path}/ubuntu_x86/mindspore-lite-${version}-inference-linux-x64-avx.tar.gz ${output_path}/release/linux/mindspore-lite-${version}-inference-linux-x64.tar.gz
  109. cp ${input_path}/ubuntu_x86/mindspore-lite-${version}-inference-linux-x64-avx.tar.gz.sha256 ${output_path}/release/linux/mindspore-lite-${version}-inference-linux-x64.tar.gz.sha256
  110. cp ${input_path}/ubuntu_x86/mindspore-lite-${version}-train-* ${output_path}/release/linux/
  111. }
  112. function windows_release_package()
  113. {
  114. mkdir -p ${output_path}/release/windows/
  115. cp ${input_path}/windows_x64/mindspore-lite-${version}-converter-* ${output_path}/release/windows/
  116. cp ${input_path}/windows_x64/mindspore-lite-${version}-inference-win-x64-avx.zip ${output_path}/release/windows/mindspore-lite-${version}-inference-win-x64.zip
  117. cp ${input_path}/windows_x64/mindspore-lite-${version}-inference-win-x64-avx.zip.sha256 ${output_path}/release/windows/mindspore-lite-${version}-inference-win-x64.zip.sha256
  118. }
  119. echo "============================== begin =============================="
  120. echo "Usage: bash lite_release_package.sh input_path output_path"
  121. input_path=$1
  122. output_path=$2
  123. version=`ls ${input_path}/android_aarch64/mindspore-lite-*-inference-*.tar.gz | awk -F'/' '{print $NF}' | cut -d"-" -f3`
  124. android_release_package
  125. linux_release_package
  126. windows_release_package
  127. echo "Create release package success!"
  128. echo "=============================== end ==============================="