|
|
|
@@ -0,0 +1,133 @@ |
|
|
|
#!/bin/bash |
|
|
|
# Copyright 2019 Huawei Technologies Co., Ltd |
|
|
|
# |
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
# you may not use this file except in compliance with the License. |
|
|
|
# You may obtain a copy of the License at |
|
|
|
# |
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
|
|
# |
|
|
|
# Unless required by applicable law or agreed to in writing, software |
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, |
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
# limitations under the License. |
|
|
|
# ============================================================================ |
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
function verify_every_file() { |
|
|
|
for full_file in "$1"/* |
|
|
|
do |
|
|
|
if [ -d ${full_file} ] |
|
|
|
then |
|
|
|
verify_every_file ${full_file} $2 |
|
|
|
else |
|
|
|
echo "check: ${full_file}" |
|
|
|
exist_and_equal="false" |
|
|
|
src_sha256=`sha256sum ${full_file} | cut -d" " -f1` |
|
|
|
file_name=$(basename ${full_file}) |
|
|
|
find_result=`find $2 -name ${file_name} -type f` |
|
|
|
for same_name_file in ${find_result} |
|
|
|
do |
|
|
|
dst_sha256=`sha256sum ${same_name_file} | cut -d" " -f1` |
|
|
|
if [ ${src_sha256} == ${dst_sha256} ] |
|
|
|
then |
|
|
|
echo " dst: ${same_name_file}" |
|
|
|
exist_and_equal="true" |
|
|
|
fi |
|
|
|
done |
|
|
|
if [ ${exist_and_equal} == "false" ] |
|
|
|
then |
|
|
|
echo " check failed!" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
fi |
|
|
|
done |
|
|
|
} |
|
|
|
|
|
|
|
function android_release_package() |
|
|
|
{ |
|
|
|
for name in "train" "inference" |
|
|
|
do |
|
|
|
src_arm64_pkg_name="mindspore-lite-${version}-${name}-android-aarch64" |
|
|
|
src_arm32_pkg_name="mindspore-lite-${version}-${name}-android-aarch32" |
|
|
|
dst_android_pkg_name="mindspore-lite-${version}-${name}-android" |
|
|
|
|
|
|
|
tar -xzf ${input_path}/android_aarch64/${src_arm64_pkg_name}.tar.gz |
|
|
|
tar -xzf ${input_path}/android_aarch32/${src_arm32_pkg_name}.tar.gz |
|
|
|
|
|
|
|
# ARM32 and ARM64 have the same header file. |
|
|
|
mkdir -p ${dst_android_pkg_name}/third_party |
|
|
|
mkdir -p ${dst_android_pkg_name}/minddata/ |
|
|
|
cp -r ${src_arm64_pkg_name}/include/ ${dst_android_pkg_name}/ |
|
|
|
cp -r ${src_arm64_pkg_name}/third_party/flatbuffers/ ${dst_android_pkg_name}/third_party/ |
|
|
|
cp -r ${src_arm64_pkg_name}/minddata/include/ ${dst_android_pkg_name}/minddata/ |
|
|
|
|
|
|
|
# Executable files and dynamic libraries are different in different architectures. |
|
|
|
mkdir -p ${dst_android_pkg_name}/benchmark/aarch64/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/benchmark/aarch32/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/lib/aarch64/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/lib/aarch32/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/minddata/lib/aarch64/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/minddata/lib/aarch32/ |
|
|
|
cp ${src_arm64_pkg_name}/benchmark/* ${dst_android_pkg_name}/benchmark/aarch64/ |
|
|
|
cp ${src_arm32_pkg_name}/benchmark/* ${dst_android_pkg_name}/benchmark/aarch32/ |
|
|
|
cp ${src_arm64_pkg_name}/lib/* ${dst_android_pkg_name}/lib/aarch64/ |
|
|
|
cp ${src_arm32_pkg_name}/lib/* ${dst_android_pkg_name}/lib/aarch32/ |
|
|
|
cp ${src_arm64_pkg_name}/minddata/lib/* ${dst_android_pkg_name}/minddata/lib/aarch64/ |
|
|
|
cp ${src_arm32_pkg_name}/minddata/lib/* ${dst_android_pkg_name}/minddata/lib/aarch32/ |
|
|
|
|
|
|
|
if [ ${name} == "train" ] |
|
|
|
then |
|
|
|
mkdir -p ${dst_android_pkg_name}/net_train/aarch64/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/net_train/aarch32/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch64/ |
|
|
|
mkdir -p ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch32/ |
|
|
|
cp ${src_arm64_pkg_name}/net_train/* ${dst_android_pkg_name}/net_train/aarch64/ |
|
|
|
cp ${src_arm32_pkg_name}/net_train/* ${dst_android_pkg_name}/net_train/aarch32/ |
|
|
|
cp ${src_arm64_pkg_name}/minddata/third_party/libjpeg-turbo/lib/* ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch64/ |
|
|
|
cp ${src_arm32_pkg_name}/minddata/third_party/libjpeg-turbo/lib/* ${dst_android_pkg_name}/minddata/third_party/libjpeg-turbo/lib/aarch32/ |
|
|
|
fi |
|
|
|
mkdir -p ${dst_android_pkg_name}/third_party/hiai_ddk/lib/aarch64/ |
|
|
|
cp -r ${src_arm64_pkg_name}/third_party/hiai_ddk/lib/* ${dst_android_pkg_name}/third_party/hiai_ddk/lib/aarch64/ |
|
|
|
|
|
|
|
mkdir -p ${output_path}/release/android/ |
|
|
|
tar -czf ${output_path}/release/android/${dst_android_pkg_name}.tar.gz ${dst_android_pkg_name} |
|
|
|
cd ${output_path}/release/android/ |
|
|
|
sha256sum ${dst_android_pkg_name}.tar.gz > ${dst_android_pkg_name}.tar.gz.sha256 |
|
|
|
cd - |
|
|
|
|
|
|
|
verify_every_file ${src_arm64_pkg_name} ${dst_android_pkg_name} |
|
|
|
verify_every_file ${src_arm32_pkg_name} ${dst_android_pkg_name} |
|
|
|
rm -rf ${src_arm64_pkg_name} |
|
|
|
rm -rf ${src_arm32_pkg_name} |
|
|
|
rm -rf ${dst_android_pkg_name} |
|
|
|
done |
|
|
|
} |
|
|
|
|
|
|
|
function linux_release_package() |
|
|
|
{ |
|
|
|
mkdir -p ${output_path}/release/linux/ |
|
|
|
cp ${input_path}/ubuntu_x86/* ${output_path}/release/linux/ |
|
|
|
} |
|
|
|
|
|
|
|
function windows_release_package() |
|
|
|
{ |
|
|
|
mkdir -p ${output_path}/release/windows/ |
|
|
|
cp ${input_path}/windows_x64/* ${output_path}/release/windows/ |
|
|
|
} |
|
|
|
|
|
|
|
echo "============================== begin ==============================" |
|
|
|
echo "Usage: bash lite_release_package.sh input_path output_path" |
|
|
|
|
|
|
|
input_path=$1 |
|
|
|
output_path=$2 |
|
|
|
version=`ls ${input_path}/android_aarch64/mindspore-lite-*-inference-*.tar.gz | cut -d"-" -f3` |
|
|
|
|
|
|
|
android_release_package |
|
|
|
linux_release_package |
|
|
|
windows_release_package |
|
|
|
|
|
|
|
echo "Create release package success!" |
|
|
|
echo "=============================== end ===============================" |