85 lines
1.9 KiB
Bash
85 lines
1.9 KiB
Bash
#!/bin/bash
|
||
|
||
# GBT项目构建脚本
|
||
# 支持Linux和macOS
|
||
|
||
set -e
|
||
|
||
echo "🚀 开始构建GBT项目..."
|
||
|
||
# 检查Rust环境
|
||
if ! command -v cargo &> /dev/null; then
|
||
echo "❌ 错误: 未找到cargo,请先安装Rust"
|
||
echo "访问 https://rustup.rs/ 安装Rust"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查Rust版本
|
||
RUST_VERSION=$(rustc --version | cut -d' ' -f2)
|
||
echo "📦 Rust版本: $RUST_VERSION"
|
||
|
||
# 检查依赖
|
||
echo ""
|
||
echo "检查依赖项..."
|
||
|
||
# 检查ZMQ
|
||
if ! pkg-config --exists libzmq3; then
|
||
echo "警告: 未找到ZMQ开发库"
|
||
echo "Ubuntu/Debian: sudo apt-get install libzmq3-dev"
|
||
echo "CentOS/RHEL: sudo yum install zeromq-devel"
|
||
echo "macOS: brew install zeromq"
|
||
echo ""
|
||
echo "继续构建,但可能遇到ZMQ相关错误..."
|
||
fi
|
||
|
||
# 检查OpenSSL
|
||
if ! pkg-config --exists openssl; then
|
||
echo "警告: 未找到OpenSSL开发库"
|
||
echo "Ubuntu/Debian: sudo apt-get install libssl-dev"
|
||
echo "CentOS/RHEL: sudo yum install openssl-devel"
|
||
echo "macOS: brew install openssl"
|
||
echo ""
|
||
echo "继续构建,但可能遇到TLS相关错误..."
|
||
fi
|
||
|
||
echo "✓ 依赖检查完成"
|
||
|
||
# 清理之前的构建
|
||
echo "🧹 清理之前的构建..."
|
||
cargo clean
|
||
|
||
# 更新依赖
|
||
echo "📥 更新依赖..."
|
||
cargo update
|
||
|
||
# 检查代码
|
||
echo "🔍 检查代码..."
|
||
cargo check
|
||
|
||
# 运行测试
|
||
echo "🧪 运行测试..."
|
||
cargo test
|
||
|
||
# 构建发布版本
|
||
echo "🔨 构建发布版本..."
|
||
cargo build --release
|
||
|
||
# 检查构建结果
|
||
if [ -f "target/release/gbt" ]; then
|
||
echo "✅ 构建成功!"
|
||
echo "📁 可执行文件位置: target/release/gbt"
|
||
|
||
# 显示文件信息
|
||
echo "📊 文件信息:"
|
||
ls -lh target/release/gbt
|
||
|
||
# 显示版本信息
|
||
echo "ℹ️ 版本信息:"
|
||
./target/release/gbt --version 2>/dev/null || echo "无法获取版本信息"
|
||
|
||
else
|
||
echo "❌ 构建失败!"
|
||
exit 1
|
||
fi
|
||
|
||
echo "🎉 GBT项目构建完成!" |