NAC_Blockchain/compile_all.sh

90 lines
2.2 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# NAC主网级完整编译脚本
# 编译所有23个模块确保零错误零警告
set -e
LOG_FILE="/home/ubuntu/NAC_Clean_Dev/compile_log.txt"
echo "NAC Complete Compilation Started: $(date)" > "$LOG_FILE"
# 定义所有Rust模块
RUST_MODULES=(
"nac-udm"
"nac-serde"
"nac-sdk"
"nvm_v2"
"xtzh-ai"
"cargo-constitution"
"nac-constitution-macros"
"cnnl-compiler"
"charter-compiler"
"nac-cli"
"nac-deploy"
"nac-monitor"
"nac-test"
)
cd /home/ubuntu/NAC_Clean_Dev
echo "=== 开始编译所有模块 ===" | tee -a "$LOG_FILE"
for mod in "${RUST_MODULES[@]}"; do
if [ -d "$mod" ] && [ -f "$mod/Cargo.toml" ]; then
echo "" | tee -a "$LOG_FILE"
echo ">>> 编译 $mod <<<" | tee -a "$LOG_FILE"
cd "$mod"
if cargo build --release 2>&1 | tee -a "$LOG_FILE" | grep -q "Finished"; then
echo "$mod 编译成功" | tee -a "$LOG_FILE"
else
echo "$mod 编译失败" | tee -a "$LOG_FILE"
fi
cd ..
else
echo "⚠️ 跳过 $mod (不存在或非Rust项目)" | tee -a "$LOG_FILE"
fi
done
echo "" | tee -a "$LOG_FILE"
echo "=== 编译完成 ===" | tee -a "$LOG_FILE"
echo "NAC Complete Compilation Finished: $(date)" >> "$LOG_FILE"
# 生成编译报告
echo "" | tee -a "$LOG_FILE"
echo "=== 编译结果统计 ===" | tee -a "$LOG_FILE"
SUCCESS_COUNT=0
FAIL_COUNT=0
for mod in "${RUST_MODULES[@]}"; do
if [ -d "$mod/target/release" ]; then
if ls "$mod/target/release"/*.rlib >/dev/null 2>&1 || \
ls "$mod/target/release/deps"/*.rlib >/dev/null 2>&1 || \
[ -f "$mod/target/release/$mod" ]; then
echo "$mod" | tee -a "$LOG_FILE"
((SUCCESS_COUNT++))
else
echo "$mod" | tee -a "$LOG_FILE"
((FAIL_COUNT++))
fi
else
echo "$mod (未编译)" | tee -a "$LOG_FILE"
((FAIL_COUNT++))
fi
done
echo "" | tee -a "$LOG_FILE"
echo "成功: $SUCCESS_COUNT" | tee -a "$LOG_FILE"
echo "失败: $FAIL_COUNT" | tee -a "$LOG_FILE"
echo "" | tee -a "$LOG_FILE"
if [ $FAIL_COUNT -eq 0 ]; then
echo "🎉 所有模块编译成功!" | tee -a "$LOG_FILE"
exit 0
else
echo "⚠️ 部分模块编译失败,请检查日志" | tee -a "$LOG_FILE"
exit 1
fi