2025-11-28 18:10:10 +08:00
|
|
|
|
@echo off
|
|
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
|
|
|
|
|
|
|
|
echo ========================================
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo Pinball Physics <20><><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ========================================
|
|
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>ģʽ<C4A3><CABD>Ĭ<EFBFBD><C4AC>Ϊ debug
|
2025-11-28 18:10:10 +08:00
|
|
|
|
set BUILD_MODE=%1
|
|
|
|
|
|
if "%BUILD_MODE%"=="" set BUILD_MODE=debug
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>ģʽ
|
2025-11-28 18:10:10 +08:00
|
|
|
|
if /i "%BUILD_MODE%" neq "debug" if /i "%BUILD_MODE%" neq "release" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: <20><>Ч<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ģʽ "%BUILD_MODE%"
|
|
|
|
|
|
echo ֧<>ֵ<EFBFBD>ģʽ: debug ^| release
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo.
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20>÷<EFBFBD>: build-physics.bat [debug^|release]
|
|
|
|
|
|
echo ʾ<><CABE>: build-physics.bat release
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>ģʽ: %BUILD_MODE%
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
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
|
2025-11-29 01:42:48 +08:00
|
|
|
|
set ASM_OUTPUT=%SCRIPT_DIR%assets\wasm\pinball_physics.asm.js
|
2025-11-28 18:10:10 +08:00
|
|
|
|
set EMSCRIPTEN_TOOL=%PROJECT_ROOT%tools\emscripten\gen-asm.bat
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo ·<><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: %PHYSICS_DIR%
|
|
|
|
|
|
echo WASM Դ<>ļ<EFBFBD>: %WASM_SOURCE%
|
|
|
|
|
|
echo WASM <20><><EFBFBD><EFBFBD>: %WASM_OUTPUT%
|
|
|
|
|
|
echo asm.js <20><><EFBFBD><EFBFBD>: %ASM_OUTPUT%
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
if not exist "%PHYSICS_DIR%\Cargo.toml" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
|
echo ·<><C2B7>: %PHYSICS_DIR%
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD> Rust <20>Ƿ<EFBFBD><C7B7><EFBFBD>װ
|
2025-11-28 18:10:10 +08:00
|
|
|
|
rustc --version >nul 2>&1
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Rust <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
echo <20><><EFBFBD>Ȱ<EFBFBD>װ Rust: https://rustup.rs/
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD> wasm32-unknown-unknown Ŀ<><C4BF><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>װ
|
2025-11-28 18:10:10 +08:00
|
|
|
|
rustup target list --installed | findstr "wasm32-unknown-unknown" >nul 2>&1
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><>װ wasm32-unknown-unknown Ŀ<><C4BF>...
|
2025-11-28 18:10:10 +08:00
|
|
|
|
rustup target add wasm32-unknown-unknown
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: <20><>װ wasm32-unknown-unknown Ŀ<><C4BF>ʧ<EFBFBD><CAA7>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
|
2025-11-28 18:10:10 +08:00
|
|
|
|
if not exist "%SCRIPT_DIR%assets\wasm" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: assets\wasm
|
2025-11-28 18:10:10 +08:00
|
|
|
|
mkdir "%SCRIPT_DIR%assets\wasm"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
echo ----------------------------------------
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><>1<EFBFBD><31>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (ģʽ: %BUILD_MODE%)
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ----------------------------------------
|
|
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
cd /d "%PHYSICS_DIR%"
|
|
|
|
|
|
|
|
|
|
|
|
if /i "%BUILD_MODE%"=="release" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: cargo build --target wasm32-unknown-unknown --release
|
2025-11-28 18:10:10 +08:00
|
|
|
|
cargo build --target wasm32-unknown-unknown --release
|
|
|
|
|
|
) else (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo ִ<><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: cargo build --target wasm32-unknown-unknown
|
2025-11-28 18:10:10 +08:00
|
|
|
|
cargo build --target wasm32-unknown-unknown
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
if not exist "%WASM_SOURCE%" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>: %WASM_SOURCE%
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
2025-11-28 18:10:10 +08:00
|
|
|
|
for %%A in ("%WASM_SOURCE%") do (
|
|
|
|
|
|
set source_size=%%~zA
|
|
|
|
|
|
set /a size_kb=!source_size!/1024
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>! <20>ļ<EFBFBD><C4BC><EFBFBD>С: !size_kb! KB
|
2025-11-28 18:10:10 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
echo.
|
|
|
|
|
|
echo ----------------------------------------
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><>2<EFBFBD><32>: <20><><EFBFBD><EFBFBD> WASM <20>ļ<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ----------------------------------------
|
|
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD> WASM <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>ԴĿ¼
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: %WASM_SOURCE%
|
|
|
|
|
|
echo <20><>: %WASM_OUTPUT%
|
2025-11-28 18:10:10 +08:00
|
|
|
|
|
|
|
|
|
|
copy "%WASM_SOURCE%" "%WASM_OUTPUT%" >nul
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> WASM <20>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!
|
2025-11-28 18:10:10 +08:00
|
|
|
|
|
|
|
|
|
|
echo.
|
|
|
|
|
|
echo ----------------------------------------
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><>3<EFBFBD><33>: <20><><EFBFBD><EFBFBD> asm.js <20>ļ<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ----------------------------------------
|
|
|
|
|
|
echo.
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20><><EFBFBD><EFBFBD> Emscripten ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
if not exist "%EMSCRIPTEN_TOOL%" (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Emscripten ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
echo ·<><C2B7>: %EMSCRIPTEN_TOOL%
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: tools\emscripten\install.bat
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ŀ¼
|
2025-11-28 18:10:10 +08:00
|
|
|
|
cd /d "%PROJECT_ROOT%"
|
|
|
|
|
|
|
2025-11-29 01:42:48 +08:00
|
|
|
|
:: ִ<><D6B4> WASM <20><> asm.js ת<><D7AA>
|
|
|
|
|
|
echo ִ<><D6B4>ת<EFBFBD><D7AA>: WASM <20><> asm.js
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: %EMSCRIPTEN_TOOL% "%WASM_SOURCE%" "%ASM_OUTPUT%"
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo.
|
|
|
|
|
|
|
|
|
|
|
|
call "%EMSCRIPTEN_TOOL%" "%WASM_SOURCE%" "%ASM_OUTPUT%"
|
|
|
|
|
|
if %errorlevel% neq 0 (
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>: asm.js ת<><D7AA>ʧ<EFBFBD><CAA7>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
goto :error
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
echo.
|
|
|
|
|
|
echo ========================================
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ========================================
|
|
|
|
|
|
echo.
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>:
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo WASM: %WASM_OUTPUT%
|
|
|
|
|
|
if exist "%ASM_OUTPUT%" (
|
|
|
|
|
|
for %%A in ("%WASM_OUTPUT%") do (
|
|
|
|
|
|
set wasm_size=%%~zA
|
|
|
|
|
|
set /a wasm_kb=!wasm_size!/1024
|
|
|
|
|
|
)
|
|
|
|
|
|
for %%A in ("%ASM_OUTPUT%") do (
|
|
|
|
|
|
set asm_size=%%~zA
|
|
|
|
|
|
set /a asm_kb=!asm_size!/1024
|
|
|
|
|
|
)
|
|
|
|
|
|
echo asm.js: %ASM_OUTPUT%
|
|
|
|
|
|
echo.
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20>ļ<EFBFBD><C4BC><EFBFBD>С:
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo WASM: !wasm_kb! KB
|
|
|
|
|
|
echo asm.js: !asm_kb! KB
|
|
|
|
|
|
)
|
|
|
|
|
|
echo.
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>ģʽ: %BUILD_MODE%
|
|
|
|
|
|
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cocos Creator <20><>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>Щ<EFBFBD>ļ<EFBFBD><C4BC>ˣ<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
|
|
|
|
|
|
goto :end
|
|
|
|
|
|
|
|
|
|
|
|
:error
|
|
|
|
|
|
echo.
|
|
|
|
|
|
echo ========================================
|
2025-11-29 01:42:48 +08:00
|
|
|
|
echo <20><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>
|
2025-11-28 18:10:10 +08:00
|
|
|
|
echo ========================================
|
|
|
|
|
|
exit /b 1
|
|
|
|
|
|
|
|
|
|
|
|
:end
|
|
|
|
|
|
echo.
|
|
|
|
|
|
pause
|