You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.6 KiB
68 lines
1.6 KiB
#!/bin/bash
|
|
|
|
# 设置项目根目录
|
|
PROJECT_ROOT=$(pwd)
|
|
|
|
# 设置构建目录
|
|
BUILD_DIR="$PROJECT_ROOT/build"
|
|
|
|
# 设置生成的可执行文件路径和目标软链接路径
|
|
EXECUTABLE_PATH="$BUILD_DIR/App/console_pytorch/ISG_console_pytorch"
|
|
TARGET_LINK="/usr/myapp/ISG"
|
|
|
|
# 动态判断是否需要 sudo
|
|
if [ "$EUID" -ne 0 ]; then
|
|
SUDO="sudo"
|
|
else
|
|
SUDO=""
|
|
fi
|
|
|
|
# 检查构建目录是否存在
|
|
check_build_dir() {
|
|
if [ ! -d "$BUILD_DIR" ]; then
|
|
echo "构建目录不存在,请先运行完整构建流程。"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# 执行 Make 构建
|
|
run_make() {
|
|
echo "开始增量编译项目..."
|
|
cd "$BUILD_DIR" || { echo "无法进入构建目录"; exit 1; }
|
|
make -j$(nproc) || { echo "构建失败"; exit 1; }
|
|
echo "构建完成!"
|
|
}
|
|
|
|
# 创建软链接
|
|
create_symlink() {
|
|
if [ -L "$TARGET_LINK" ]; then
|
|
echo "目标软链接已存在,正在删除: $TARGET_LINK"
|
|
$SUDO rm -f "$TARGET_LINK" || { echo "无法删除现有软链接"; exit 1; }
|
|
elif [ -e "$TARGET_LINK" ]; then
|
|
echo "目标路径已存在且不是软链接: $TARGET_LINK"
|
|
exit 1
|
|
fi
|
|
|
|
echo "正在创建软链接..."
|
|
$SUDO ln -s "$EXECUTABLE_PATH" "$TARGET_LINK" || { echo "创建软链接失败"; exit 1; }
|
|
echo "软链接已成功创建: $TARGET_LINK -> $EXECUTABLE_PATH"
|
|
}
|
|
|
|
# 主流程
|
|
main() {
|
|
echo "开始增量构建流程..."
|
|
|
|
# 1. 检查构建目录是否存在
|
|
check_build_dir
|
|
|
|
# 2. 执行增量编译
|
|
run_make
|
|
|
|
# 3. 创建软链接
|
|
create_symlink
|
|
|
|
echo "所有步骤完成!"
|
|
}
|
|
|
|
# 执行主流程
|
|
main
|