From 60b5a43978757f34615e480f8d24ac7b45bc7d30 Mon Sep 17 00:00:00 2001 From: jayshu Date: Tue, 14 Nov 2023 14:55:28 +0800 Subject: [PATCH] add build file --- build.sh | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 build.sh diff --git a/build.sh b/build.sh new file mode 100644 index 00000000..f2c01a9e --- /dev/null +++ b/build.sh @@ -0,0 +1,95 @@ +CUR_DIR=$(dirname $(readlink -f $0)) +SUPPORTED_PY_VERSION=(3.7 3.8 3.9 3.10) +PY_VERSION='3.7' +DEFAULT_SCRIPT_ARGS_NUM=1 + +function check_python_version() { + matched_py_version='false' + for ver in ${SUPPORTED_PY_VERSION[*]}; do + if [ "${PY_VERSION}" = "${ver}" ]; then + matched_py_version='true' + return 0 + fi + done + if [ "${matched_py_version}" = 'false' ]; then + echo "${PY_VERSION} is an unsupported python version, we suggest ${SUPPORTED_PY_VERSION[*]}" + exit 1 + fi +} + +function parse_script_args() { + local args_num=0 + if [[ "x${1}" = "x" ]]; then + # default: bash build.sh (python3.7) + return 0 + fi + + while true; do + if [[ "x${1}" = "x" ]]; then + break + fi + if [[ "$(echo "${1}"|cut -b1-|cut -b-2)" == "--" ]]; then + args_num=$((args_num+1)) + fi + if [[ ${args_num} -eq ${DEFAULT_SCRIPT_ARGS_NUM} ]]; then + break + fi + shift + done + + # if num of args are not fully parsed, throw an error. + if [[ ${args_num} -lt ${DEFAULT_SCRIPT_ARGS_NUM} ]]; then + return 1 + fi + + while true; do + case "${1}" in + --python=*) + PY_VERSION=$(echo "${1}"|cut -d"=" -f2) + args_num=$((args_num-1)) + shift + ;; + --tocpu=*) + export 'NPU_TOCPU'=${1:8} + args_num=$((args_num-1)) + shift + ;; + -*) + echo "ERROR Unsupported parameters: ${1}" + return 1 + ;; + *) + if [ "x${1}" != "x" ]; then + echo "ERROR Unsupported parameters: ${1}" + return 1 + fi + break + ;; + esac + done + + # if some "--param=value" are not parsed correctly, throw an error. + if [[ ${args_num} -ne 0 ]]; then + return 1 + fi +} + +function main() +{ + if ! parse_script_args "$@"; then + echo "Failed to parse script args. Please check your inputs." + exit 1 + fi + + check_python_version + + python"${PY_VERSION}" setup.py build bdist_wheel + if [ $? != 0 ]; then + echo "Failed to compile the wheel file. Please check the source code by yourself." + exit 1 + fi + + exit 0 +} + +main "$@" -- Gitee