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.
120 lines
2.7 KiB
120 lines
2.7 KiB
#!/bin/bash
|
|
|
|
# RPC项目构建脚本
|
|
|
|
# 设置默认构建目录
|
|
build_dir="build"
|
|
install_prefix="/usr/local"
|
|
|
|
# 显示帮助信息
|
|
show_help() {
|
|
echo "用法: $0 [选项]"
|
|
echo "选项:"
|
|
echo " --help 显示帮助信息"
|
|
echo " --clean 清理构建目录"
|
|
echo " --install 安装到系统目录"
|
|
echo " --prefix=DIR 设置安装前缀 (默认: /usr/local)"
|
|
echo " --build-dir=DIR 设置构建目录 (默认: build)"
|
|
}
|
|
|
|
# 处理命令行参数
|
|
for arg in "$@";
|
|
do
|
|
case $arg in
|
|
--help)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
--clean)
|
|
echo "清理构建目录 $build_dir..."
|
|
rm -rf "$build_dir"
|
|
exit 0
|
|
;;
|
|
--install)
|
|
install=true
|
|
shift
|
|
;;
|
|
--prefix=*)
|
|
install_prefix="${arg#*=}"
|
|
shift
|
|
;;
|
|
--build-dir=*)
|
|
build_dir="${arg#*=}"
|
|
shift
|
|
;;
|
|
*)
|
|
echo "未知选项: $arg"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# 检查是否在Linux环境下运行
|
|
if [[ "$(uname)" != "Linux" ]]; then
|
|
echo "警告: 这个脚本设计用于Linux环境,您的操作系统可能不兼容"
|
|
echo "如果您在Windows上,可以尝试使用WSL或其他Linux子系统"
|
|
fi
|
|
|
|
# 检查是否安装了CMake
|
|
if ! command -v cmake &> /dev/null;
|
|
then
|
|
echo "错误: CMake未安装,请先安装CMake"
|
|
echo "Ubuntu/Debian: sudo apt-get install cmake"
|
|
echo "CentOS/RHEL: sudo yum install cmake"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查是否安装了GCC
|
|
if ! command -v gcc &> /dev/null;
|
|
then
|
|
echo "错误: GCC编译器未安装,请先安装GCC"
|
|
echo "Ubuntu/Debian: sudo apt-get install gcc"
|
|
echo "CentOS/RHEL: sudo yum install gcc"
|
|
exit 1
|
|
fi
|
|
|
|
# 创建构建目录
|
|
mkdir -p "$build_dir"
|
|
cd "$build_dir"
|
|
|
|
# 运行CMake配置
|
|
echo "运行CMake配置..."
|
|
echo "安装前缀: $install_prefix"
|
|
cmake .. -DCMAKE_INSTALL_PREFIX="$install_prefix"
|
|
|
|
if [ $? -ne 0 ];
|
|
then
|
|
echo "CMake配置失败,请检查错误信息"
|
|
exit 1
|
|
fi
|
|
|
|
# 编译项目
|
|
echo "编译项目..."
|
|
make -j$(nproc)
|
|
|
|
if [ $? -ne 0 ];
|
|
then
|
|
echo "编译失败,请检查错误信息"
|
|
exit 1
|
|
fi
|
|
|
|
# 安装(如果请求)
|
|
if [ "$install" = true ];
|
|
then
|
|
echo "安装项目到 $install_prefix..."
|
|
sudo make install
|
|
|
|
if [ $? -ne 0 ];
|
|
then
|
|
echo "安装失败,请检查错误信息"
|
|
exit 1
|
|
fi
|
|
|
|
echo "安装成功!"
|
|
fi
|
|
|
|
# 显示成功信息
|
|
echo "构建成功! 可执行文件位于 $build_dir/bin/"
|
|
echo "运行服务器: ./$build_dir/bin/rpc_server"
|
|
echo "运行客户端: ./$build_dir/bin/rpc_client"
|