91 lines
2.4 KiB
Bash
Executable File
91 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# WebRTC 编译并复制脚本
|
||
# 使用 gn + ninja 直接编译 webrtc target 生成 libwebrtc.a
|
||
|
||
set -e # 遇到错误立即退出
|
||
|
||
# 路径配置
|
||
WEBRTC_SRC="/Users/huiran/project/webrtc_depneds/src"
|
||
BUILD_DIR="${WEBRTC_SRC}/out/ios_arm64"
|
||
TARGET_DIR="/Users/huiran/project/SellySdk/SellyCloudSDK/sdk/libwebrtc"
|
||
|
||
echo "=========================================="
|
||
echo "WebRTC iOS 编译脚本"
|
||
echo "=========================================="
|
||
|
||
# 添加 depot_tools 到 PATH
|
||
export PATH="${WEBRTC_SRC}/third_party/depot_tools:$PATH"
|
||
|
||
# 检查源码目录是否存在
|
||
if [ ! -d "$WEBRTC_SRC" ]; then
|
||
echo "❌ 错误: WebRTC 源码目录不存在: $WEBRTC_SRC"
|
||
exit 1
|
||
fi
|
||
|
||
# 进入 WebRTC 源码目录
|
||
cd "$WEBRTC_SRC"
|
||
echo "📂 进入目录: $WEBRTC_SRC"
|
||
|
||
# 检查 args.gn 是否存在,如果不存在则创建
|
||
if [ ! -f "${BUILD_DIR}/args.gn" ]; then
|
||
echo "📝 创建 args.gn 配置文件..."
|
||
mkdir -p "$BUILD_DIR"
|
||
cat > "${BUILD_DIR}/args.gn" << 'EOF'
|
||
target_os = "ios"
|
||
target_cpu = "arm64"
|
||
target_environment = "device"
|
||
ios_enable_code_signing = false
|
||
is_component_build = false
|
||
is_debug = false
|
||
enable_dsyms = true
|
||
rtc_include_tests = false
|
||
rtc_build_examples = false
|
||
use_rtti = true
|
||
treat_warnings_as_errors = false
|
||
rtc_enable_objc_symbol_export = true
|
||
use_custom_libcxx = false
|
||
rtc_use_h264 = true
|
||
rtc_use_h265 = true
|
||
rtc_include_internal_audio_device = true
|
||
rtc_enable_protobuf = false
|
||
use_thin_archives = false
|
||
EOF
|
||
fi
|
||
|
||
# 生成 ninja 文件
|
||
echo "🔧 生成 ninja 文件..."
|
||
./buildtools/mac/gn gen "$BUILD_DIR"
|
||
|
||
# 编译 webrtc target
|
||
echo "🔨 开始编译 webrtc target..."
|
||
ninja -C "$BUILD_DIR" webrtc
|
||
|
||
# 检查编译结果
|
||
OUTPUT_LIB="${BUILD_DIR}/obj/libwebrtc.a"
|
||
if [ ! -f "$OUTPUT_LIB" ]; then
|
||
echo "❌ 错误: 编译失败,libwebrtc.a 不存在"
|
||
exit 1
|
||
fi
|
||
|
||
LIB_SIZE=$(ls -lh "$OUTPUT_LIB" | awk '{print $5}')
|
||
echo "✅ 编译成功! 文件大小: $LIB_SIZE"
|
||
|
||
# 复制新文件(覆盖旧文件)
|
||
echo "📋 复制到目标目录: $TARGET_DIR"
|
||
cp "$OUTPUT_LIB" "$TARGET_DIR/libwebrtc.a"
|
||
|
||
# 验证复制
|
||
if [ -f "${TARGET_DIR}/libwebrtc.a" ]; then
|
||
NEW_SIZE=$(ls -lh "${TARGET_DIR}/libwebrtc.a" | awk '{print $5}')
|
||
echo "✅ 复制成功! 新文件大小: $NEW_SIZE"
|
||
else
|
||
echo "❌ 错误: 复制失败"
|
||
exit 1
|
||
fi
|
||
|
||
echo ""
|
||
echo "=========================================="
|
||
echo "✅ 编译完成!"
|
||
echo "=========================================="
|