#!/bin/bash # 这是一个辅助脚本,用于在终端中手动编译 OpenClaw 为 WASM # 用法: ./build_wasm.sh # 确保 Emscripten 环境已激活 source "/opt/emsdk/emsdk_env.sh" echo "Downloading OpenClaw source..." git clone https://github.com/pjasicek/OpenClaw.git cd OpenClaw # 简单的 Hello World 验证 (可选) # echo "int main() { return 0; }" > test.c # emcc test.c -o test.html # OpenClaw 编译尝试 (这只是一个起点,通常需要修改源码) # 注意: OpenClaw 依赖 SDL2, SDL2_image, SDL2_mixer, SDL2_ttf # Emscripten 内置了 SDL2 (-s USE_SDL=2),但其他库需要 port mkdir -p build_wasm cd build_wasm echo "Configuring CMake for WASM..." emcmake cmake .. \ -DPLATFORM=EMSCRIPTEN \ -DCMAKE_BUILD_TYPE=Release echo "Building..." emmake make -j$(nproc) # 如果编译成功,将结果复制到 Nginx 目录 if [ -f "OpenClaw.html" ]; then echo "Build successful! Deploying to /var/www/html/game..." cp OpenClaw.html /var/www/html/game/index.html cp OpenClaw.js /var/www/html/game/ cp OpenClaw.wasm /var/www/html/game/ cp OpenClaw.data /var/www/html/game/ 2>/dev/null || true else echo "Build failed or output file not found." fi