加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
build.sh 4.18 KB
一键复制 编辑 原始数据 按行查看 历史
詹隽 提交于 2024-04-08 12:57 . !4904 编译脚本归一
#!/bin/bash
# Copyright 2019-2024 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
BASEPATH=$(cd "$(dirname $0)"; pwd)
OUTPUT_PATH="${BASEPATH}/output"
BUILD_RELATIVE_PATH="build"
# print usage message
usage() {
echo "Usage:"
echo " sh build.sh [-h | --help] [-v | --verbose] [-j<N>] [--ascend_custom_path=<PATH>] [--output_path=<PATH>]"
echo ""
echo "Options:"
echo " -h, --help Print usage"
echo " -v, --verbose Display build command"
echo " -j<N> Set the number of threads used for building Metadef, default is 8"
echo " --ascend_custom_path=<PATH>"
echo " Set ascend package install path, default /usr/local/Ascend/latest"
echo " --output_path=<PATH>"
echo " Set output path, default ./output"
echo ""
}
# parse and set options
checkopts() {
VERBOSE=""
THREAD_NUM=8
ENABLE_METADEF_UT="off"
ENABLE_METADEF_ST="off"
ENABLE_METADEF_COV="off"
ENABLE_BENCHMARK="off"
GE_ONLY="on"
ENABLE_GITEE="off"
ASCEND_CUSTOM_PATH="/usr/local/Ascend/latest"
CMAKE_BUILD_TYPE="Release"
# Process the options
parsed_args=$(getopt -a -o j:hv -l help,verbose,ascend_custom_path:,output_path: -- "$@") || {
usage
exit 1
}
eval set -- "$parsed_args"
while true; do
case "$1" in
-h | --help)
usage
exit 0
;;
-j)
THREAD_NUM="$2"
shift 2
;;
-v | --verbose)
VERBOSE="VERBOSE=1"
shift
;;
--ascend_custom_path)
ASCEND_CUSTOM_PATH="$2"
shift 2
;;
--output_path)
OUTPUT_PATH="$(realpath $2)"
shift 2
;;
--)
shift
break
;;
*)
echo "Undefined option: $1"
usage
exit 1
;;
esac
done
}
mk_dir() {
local create_dir="$1" # the target to make
mkdir -pv "${create_dir}"
echo "created ${create_dir}"
}
# Metadef build start
cmake_generate_make() {
local build_path="$1"
local cmake_args="$2"
mk_dir "${build_path}"
cd "${build_path}"
echo "${cmake_args}"
cmake ${cmake_args} ..
if [ 0 -ne $? ]; then
echo "execute command: cmake ${cmake_args} .. failed."
exit 1
fi
}
# create build path
build_metadef() {
echo "create build directory and build Metadef"
cd "${BASEPATH}"
BUILD_PATH="${BASEPATH}/${BUILD_RELATIVE_PATH}/"
CMAKE_ARGS="-D GE_ONLY=$GE_ONLY \
-D ENABLE_OPEN_SRC=True \
-D ENABLE_GITEE=${ENABLE_GITEE} \
-D ENABLE_METADEF_UT=${ENABLE_METADEF_UT} \
-D ENABLE_METADEF_ST=${ENABLE_METADEF_ST} \
-D ENABLE_METADEF_COV=${ENABLE_METADEF_COV} \
-D ENABLE_BENCHMARK=${ENABLE_BENCHMARK} \
-D BUILD_WITHOUT_AIR=True \
-D ASCEND_CUSTOM_PATH=${ASCEND_CUSTOM_PATH} \
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-D CMAKE_INSTALL_PREFIX=${OUTPUT_PATH}"
echo "CMAKE_ARGS is: $CMAKE_ARGS"
cmake_generate_make "${BUILD_PATH}" "${CMAKE_ARGS}"
make graph graph_base exe_graph register register_static rt2_registry_static error_manager error_manager_static ${VERBOSE} -j${THREAD_NUM} && \
make install && make package
if [ 0 -ne $? ]; then
echo "execute command: make ${VERBOSE} -j${THREAD_NUM} && make install failed."
return 1
fi
echo "Metadef build success!"
}
main() {
cd "${BASEPATH}"
checkopts "$@"
g++ -v
mk_dir ${OUTPUT_PATH}
echo "---------------- Metadef build start ----------------"
build_metadef || { echo "Metadef build failed."; exit 1; }
echo "---------------- Metadef build finished ----------------"
}
main "$@"
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化