完善发布asm.js脚本
This commit is contained in:
@@ -2,163 +2,163 @@
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ========================================
|
||||
echo Pinball Physics 构建脚本
|
||||
echo Pinball Physics <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
:: 设置构建模式,默认为 debug
|
||||
:: <EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ debug
|
||||
set BUILD_MODE=%1
|
||||
if "%BUILD_MODE%"=="" set BUILD_MODE=debug
|
||||
|
||||
:: 验证构建模式
|
||||
:: <EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||||
if /i "%BUILD_MODE%" neq "debug" if /i "%BUILD_MODE%" neq "release" (
|
||||
echo 错误: 无效的构建模式 "%BUILD_MODE%"
|
||||
echo 支持的模式: debug ^| release
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>Ч<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ģʽ "%BUILD_MODE%"
|
||||
echo ֧<EFBFBD>ֵ<EFBFBD>ģʽ: debug ^| release
|
||||
echo.
|
||||
echo 用法: build-physics.bat [debug^|release]
|
||||
echo 示例: build-physics.bat release
|
||||
echo <EFBFBD>÷<EFBFBD>: build-physics.bat [debug^|release]
|
||||
echo ʾ<EFBFBD><EFBFBD>: build-physics.bat release
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo 构建模式: %BUILD_MODE%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ: %BUILD_MODE%
|
||||
echo.
|
||||
|
||||
:: 设置路径变量
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
set SCRIPT_DIR=%~dp0
|
||||
set PROJECT_ROOT=%SCRIPT_DIR%..\
|
||||
set PHYSICS_DIR=%PROJECT_ROOT%pinball-physics
|
||||
set TARGET_DIR=%PHYSICS_DIR%\target\wasm32-unknown-unknown\%BUILD_MODE%
|
||||
set WASM_SOURCE=%TARGET_DIR%\pinball_physics.wasm
|
||||
set WASM_OUTPUT=%SCRIPT_DIR%assets\wasm\pinball_physics.bin
|
||||
set ASM_OUTPUT=%SCRIPT_DIR%assets\wasm\pinball_physics.js
|
||||
set ASM_OUTPUT=%SCRIPT_DIR%assets\wasm\pinball_physics.asm.js
|
||||
set EMSCRIPTEN_TOOL=%PROJECT_ROOT%tools\emscripten\gen-asm.bat
|
||||
|
||||
echo 路径配置:
|
||||
echo 物理引擎目录: %PHYSICS_DIR%
|
||||
echo WASM 源文件: %WASM_SOURCE%
|
||||
echo WASM 输出: %WASM_OUTPUT%
|
||||
echo asm.js 输出: %ASM_OUTPUT%
|
||||
echo ·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: %PHYSICS_DIR%
|
||||
echo WASM Դ<EFBFBD>ļ<EFBFBD>: %WASM_SOURCE%
|
||||
echo WASM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %WASM_OUTPUT%
|
||||
echo asm.js <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %ASM_OUTPUT%
|
||||
echo.
|
||||
|
||||
:: 检查物理引擎项目是否存在
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if not exist "%PHYSICS_DIR%\Cargo.toml" (
|
||||
echo 错误: 未找到物理引擎项目
|
||||
echo 路径: %PHYSICS_DIR%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
||||
echo ·<EFBFBD><EFBFBD>: %PHYSICS_DIR%
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 检查 Rust 是否安装
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Rust <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ
|
||||
rustc --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 未找到 Rust 编译器
|
||||
echo 请先安装 Rust: https://rustup.rs/
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Rust <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo <EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>װ Rust: https://rustup.rs/
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 检查 wasm32-unknown-unknown 目标是否安装
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> wasm32-unknown-unknown Ŀ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ
|
||||
rustup target list --installed | findstr "wasm32-unknown-unknown" >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 安装 wasm32-unknown-unknown 目标...
|
||||
echo <EFBFBD><EFBFBD>װ wasm32-unknown-unknown Ŀ<EFBFBD><EFBFBD>...
|
||||
rustup target add wasm32-unknown-unknown
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 安装 wasm32-unknown-unknown 目标失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>װ wasm32-unknown-unknown Ŀ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
)
|
||||
|
||||
:: 创建输出目录
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
|
||||
if not exist "%SCRIPT_DIR%assets\wasm" (
|
||||
echo 创建输出目录: assets\wasm
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: assets\wasm
|
||||
mkdir "%SCRIPT_DIR%assets\wasm"
|
||||
)
|
||||
|
||||
echo ----------------------------------------
|
||||
echo 第1步: 编译物理引擎 (模式: %BUILD_MODE%)
|
||||
echo <EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ģʽ: %BUILD_MODE%)
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
:: 切换到物理引擎目录并编译
|
||||
:: <EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cd /d "%PHYSICS_DIR%"
|
||||
|
||||
if /i "%BUILD_MODE%"=="release" (
|
||||
echo 执行命令: cargo build --target wasm32-unknown-unknown --release
|
||||
echo ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: cargo build --target wasm32-unknown-unknown --release
|
||||
cargo build --target wasm32-unknown-unknown --release
|
||||
) else (
|
||||
echo 执行命令: cargo build --target wasm32-unknown-unknown
|
||||
echo ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: cargo build --target wasm32-unknown-unknown
|
||||
cargo build --target wasm32-unknown-unknown
|
||||
)
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 物理引擎编译失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 检查编译输出是否存在
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if not exist "%WASM_SOURCE%" (
|
||||
echo 错误: 编译输出文件不存在
|
||||
echo 期望位置: %WASM_SOURCE%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>: %WASM_SOURCE%
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 显示编译结果信息
|
||||
:: <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
for %%A in ("%WASM_SOURCE%") do (
|
||||
set source_size=%%~zA
|
||||
set /a size_kb=!source_size!/1024
|
||||
echo 编译成功! 文件大小: !size_kb! KB
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>! <20>ļ<EFBFBD><C4BC><EFBFBD>С: !size_kb! KB
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ----------------------------------------
|
||||
echo 第2步: 拷贝 WASM 文件
|
||||
echo <EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> WASM <EFBFBD>ļ<EFBFBD>
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
:: 拷贝 WASM 文件到客户端资源目录
|
||||
echo 拷贝: %WASM_SOURCE%
|
||||
echo 到: %WASM_OUTPUT%
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> WASM <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԴĿ¼
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %WASM_SOURCE%
|
||||
echo <EFBFBD><EFBFBD>: %WASM_OUTPUT%
|
||||
|
||||
copy "%WASM_SOURCE%" "%WASM_OUTPUT%" >nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 拷贝 WASM 文件失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> WASM <20>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo 拷贝成功!
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!
|
||||
|
||||
echo.
|
||||
echo ----------------------------------------
|
||||
echo 第3步: 生成 asm.js 文件
|
||||
echo <EFBFBD><EFBFBD>3<EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> asm.js <EFBFBD>ļ<EFBFBD>
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
:: 检查 Emscripten 转换工具是否存在
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if not exist "%EMSCRIPTEN_TOOL%" (
|
||||
echo 错误: 未找到 Emscripten 转换工具
|
||||
echo 路径: %EMSCRIPTEN_TOOL%
|
||||
echo 请先运行: tools\emscripten\install.bat
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Emscripten ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo ·<EFBFBD><EFBFBD>: %EMSCRIPTEN_TOOL%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: tools\emscripten\install.bat
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 切换回项目根目录
|
||||
:: <EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>Ŀ¼
|
||||
cd /d "%PROJECT_ROOT%"
|
||||
|
||||
:: 执行 WASM 到 asm.js 转换
|
||||
echo 执行转换: WASM → asm.js
|
||||
echo 命令: %EMSCRIPTEN_TOOL% "%WASM_SOURCE%" "%ASM_OUTPUT%"
|
||||
:: ִ<EFBFBD><EFBFBD> WASM <EFBFBD><EFBFBD> asm.js ת<EFBFBD><EFBFBD>
|
||||
echo ִ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>: WASM <EFBFBD><EFBFBD> asm.js
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %EMSCRIPTEN_TOOL% "%WASM_SOURCE%" "%ASM_OUTPUT%"
|
||||
echo.
|
||||
|
||||
call "%EMSCRIPTEN_TOOL%" "%WASM_SOURCE%" "%ASM_OUTPUT%"
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: asm.js 转换失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: asm.js ת<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo 构建完成!
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 输出文件:
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>:
|
||||
echo WASM: %WASM_OUTPUT%
|
||||
if exist "%ASM_OUTPUT%" (
|
||||
for %%A in ("%WASM_OUTPUT%") do (
|
||||
@@ -171,20 +171,20 @@ if exist "%ASM_OUTPUT%" (
|
||||
)
|
||||
echo asm.js: %ASM_OUTPUT%
|
||||
echo.
|
||||
echo 文件大小:
|
||||
echo <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С:
|
||||
echo WASM: !wasm_kb! KB
|
||||
echo asm.js: !asm_kb! KB
|
||||
)
|
||||
echo.
|
||||
echo 构建模式: %BUILD_MODE%
|
||||
echo 可以在 Cocos Creator 中使用这些文件了!
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ: %BUILD_MODE%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cocos Creator <EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD>ļ<EFBFBD><EFBFBD>ˣ<EFBFBD>
|
||||
|
||||
goto :end
|
||||
|
||||
:error
|
||||
echo.
|
||||
echo ========================================
|
||||
echo 构建失败!
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>
|
||||
echo ========================================
|
||||
exit /b 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user