完善发布asm.js脚本
This commit is contained in:
@@ -21,7 +21,7 @@ export class WasmPhysicsEngine implements IPhysicsEngine {
|
||||
* @param settings 物理设置
|
||||
* @param wasmFactory WASM工厂函数(可选,推荐使用)
|
||||
*/
|
||||
async initialize(settings: PhysicsSettings, wasmFactory?: any): Promise<void> {
|
||||
async initialize(settings: PhysicsSettings ): Promise<void> {
|
||||
if (this.state === WasmModuleState.LOADED) {
|
||||
return;
|
||||
}
|
||||
@@ -29,15 +29,7 @@ export class WasmPhysicsEngine implements IPhysicsEngine {
|
||||
this.state = WasmModuleState.LOADING;
|
||||
|
||||
try {
|
||||
if (wasmFactory) {
|
||||
// 使用新的 WasmLoader(推荐方式)
|
||||
await this.initializeWithWasmLoader(wasmFactory);
|
||||
} else {
|
||||
// 回退到旧的加载方式(保持向后兼容)
|
||||
console.warn('使用旧的 WASM 加载方式,推荐提供 wasmFactory 参数使用 WasmLoader');
|
||||
await this.initializeLegacy();
|
||||
}
|
||||
|
||||
this.state = WasmModuleState.LOADED;
|
||||
console.log('WASM Physics Engine initialized successfully');
|
||||
|
||||
@@ -102,8 +94,18 @@ export class WasmPhysicsEngine implements IPhysicsEngine {
|
||||
*/
|
||||
private async initializeLegacy(): Promise<void> {
|
||||
// 加载 WASM 文件
|
||||
const wasmPath = 'assets/wasm/pinball_physics.wasm';
|
||||
const wasmResponse = await fetch(wasmPath);
|
||||
const result = await wasmLoader.loadWasmWithAsmFallback(
|
||||
wasmFactory, // WASM 工厂函数
|
||||
asmFactory, // ASM 工厂函数
|
||||
'pinball_physics.wasm', // WASM 文件名
|
||||
'pinball_physics.asm.mem', // ASM 内存文件名
|
||||
'44cacb3c-e901-455d-b3e1-1c38a69718e1', // WASM UUID
|
||||
'3400003e-dc3c-43c1-8757-3e082429125a', // ASM UUID
|
||||
'wasmFiles' // Bundle 名称
|
||||
);
|
||||
|
||||
console.log('模块加载成功,使用的是:', result.isWasm ? 'WASM' : 'ASM');
|
||||
console.log('模块实例:', result.instance);
|
||||
|
||||
if (!wasmResponse.ok) {
|
||||
throw new Error(`Failed to fetch WASM file: ${wasmResponse.statusText}`);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "c244f34a-30ab-4c13-ad52-9660a71d9cc4",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
9
client-cocos/assets/wasm/WasmLoadTest.ts.meta
Normal file
9
client-cocos/assets/wasm/WasmLoadTest.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "005f083e-a7f9-483a-bc2c-cec96e4098c0",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
client-cocos/assets/wasm/pinball_physics.asm.js
(Stored with Git LFS)
Normal file
BIN
client-cocos/assets/wasm/pinball_physics.asm.js
(Stored with Git LFS)
Normal file
Binary file not shown.
9
client-cocos/assets/wasm/pinball_physics.asm.js.meta
Normal file
9
client-cocos/assets/wasm/pinball_physics.asm.js.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "javascript",
|
||||
"imported": true,
|
||||
"uuid": "1205a156-e26f-489c-acc2-274040636dfd",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
client-cocos/assets/wasm/pinball_physics.bin
(Stored with Git LFS)
Normal file
BIN
client-cocos/assets/wasm/pinball_physics.bin
(Stored with Git LFS)
Normal file
Binary file not shown.
12
client-cocos/assets/wasm/pinball_physics.bin.meta
Normal file
12
client-cocos/assets/wasm/pinball_physics.bin.meta
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"ver": "1.0.3",
|
||||
"importer": "buffer",
|
||||
"imported": true,
|
||||
"uuid": "b209ab60-b43e-4dda-b9a9-401e28fd8735",
|
||||
"files": [
|
||||
".bin",
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
client-cocos/assets/wasm/pinball_physics.wasm
(Stored with Git LFS)
BIN
client-cocos/assets/wasm/pinball_physics.wasm
(Stored with Git LFS)
Binary file not shown.
@@ -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
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ========================================
|
||||
echo WASM to asm.js 转换器
|
||||
echo WASM to asm.js ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
:: 检查参数
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if "%~1"=="" (
|
||||
echo 错误: 缺少 WASM 文件路径参数
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ȱ<><C8B1> WASM <20>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
echo 用法: gen-asm.bat ^<wasm文件路径^> ^<输出路径^>
|
||||
echo <EFBFBD>÷<EFBFBD>: gen-asm.bat ^<wasm<EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD>^> ^<<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>^>
|
||||
echo.
|
||||
echo 示例:
|
||||
echo ʾ<EFBFBD><EFBFBD>:
|
||||
echo gen-asm.bat pinball.wasm output/pinball-asm.js
|
||||
echo gen-asm.bat ../target/wasm32-unknown-unknown/release/pinball_physics.wasm ../client-cocos/assets/wasm/pinball-asm.js
|
||||
echo.
|
||||
@@ -20,9 +20,9 @@ if "%~1"=="" (
|
||||
)
|
||||
|
||||
if "%~2"=="" (
|
||||
echo 错误: 缺少输出路径参数
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ȱ<><C8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo.
|
||||
echo 用法: gen-asm.bat ^<wasm文件路径^> ^<输出路径^>
|
||||
echo <EFBFBD>÷<EFBFBD>: gen-asm.bat ^<wasm<EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD>^> ^<<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>^>
|
||||
echo.
|
||||
goto :error
|
||||
)
|
||||
@@ -30,101 +30,102 @@ if "%~2"=="" (
|
||||
set WASM_FILE=%~1
|
||||
set OUTPUT_FILE=%~2
|
||||
set SCRIPT_DIR=%~dp0
|
||||
echo <20>ű<EFBFBD>Ŀ¼: %SCRIPT_DIR%
|
||||
|
||||
:: 转换为绝对路径
|
||||
:: ת<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
|
||||
for %%i in ("%WASM_FILE%") do set WASM_FILE_ABS=%%~fi
|
||||
for %%i in ("%OUTPUT_FILE%") do set OUTPUT_FILE_ABS=%%~fi
|
||||
for %%i in ("%OUTPUT_FILE_ABS%") do set OUTPUT_DIR=%%~dpi
|
||||
|
||||
:: 检查输入文件是否存在
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if not exist "%WASM_FILE_ABS%" (
|
||||
echo 错误: WASM 文件不存在: %WASM_FILE_ABS%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: WASM <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %WASM_FILE_ABS%
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 创建输出目录(如果不存在)
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
||||
if not exist "%OUTPUT_DIR%" (
|
||||
echo 创建输出目录: %OUTPUT_DIR%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼: %OUTPUT_DIR%
|
||||
mkdir "%OUTPUT_DIR%"
|
||||
)
|
||||
|
||||
echo 输入文件: %WASM_FILE_ABS%
|
||||
echo 输出文件: %OUTPUT_FILE_ABS%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>: %WASM_FILE_ABS%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>: %OUTPUT_FILE_ABS%
|
||||
echo.
|
||||
|
||||
:: 检查 Emscripten 环境
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
call emcc --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo Emscripten 环境未设置,尝试自动设置...
|
||||
echo Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
if exist "%SCRIPT_DIR%emsdk\emsdk_env.bat" (
|
||||
echo 运行 Emscripten 环境设置...
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
call "%SCRIPT_DIR%emsdk\emsdk_env.bat"
|
||||
call emcc --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 无法设置 Emscripten 环境
|
||||
echo 请先运行 install.bat 安装 Emscripten,或手动运行 setup-env.bat
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD> Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> install.bat <EFBFBD><EFBFBD>װ Emscripten<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> setup-env.bat
|
||||
goto :error
|
||||
)
|
||||
) else (
|
||||
echo 错误: 未找到 Emscripten 安装
|
||||
echo 请先运行 install.bat 安装 Emscripten
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Emscripten <EFBFBD><EFBFBD>װ
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> install.bat <EFBFBD><EFBFBD>װ Emscripten
|
||||
goto :error
|
||||
)
|
||||
)
|
||||
|
||||
echo Emscripten 版本信息:
|
||||
echo Emscripten <EFBFBD>汾<EFBFBD><EFBFBD>Ϣ:
|
||||
call emcc --version | findstr "emcc"
|
||||
echo.
|
||||
|
||||
echo 开始转换 WASM 到 asm.js...
|
||||
echo <EFBFBD><EFBFBD>ʼת<EFBFBD><EFBFBD> WASM <EFBFBD><EFBFBD> asm.js...
|
||||
|
||||
:: 使用 emcc 将 WASM 转换为 asm.js
|
||||
:: 关键参数说明:
|
||||
:: -s WASM=0 : 禁用 WebAssembly,生成 asm.js
|
||||
:: -s LEGACY_VM_SUPPORT=1 : 支持较老的 JavaScript 引擎
|
||||
:: -s ALLOW_MEMORY_GROWTH=1 : 允许内存增长
|
||||
:: -s NO_EXIT_RUNTIME=1 : 不退出运行时
|
||||
:: -s EXPORTED_FUNCTIONS=["_main"] : 导出函数(根据需要调整)
|
||||
:: -s MODULARIZE=1 : 生成模块化代码
|
||||
:: -s EXPORT_NAME="Module" : 导出模块名
|
||||
:: -O3 : 最高优化级别
|
||||
:: ʹ<EFBFBD><EFBFBD> wasm2js <20><><EFBFBD>߽<EFBFBD> WASM ת<EFBFBD><EFBFBD>Ϊ asm.js
|
||||
:: wasm2js <20><> Binaryen <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>֣<EFBFBD>Emscripten <20>Դ<EFBFBD>
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>:
|
||||
:: --pedantic : ʹ<>ø<EFBFBD><C3B8>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>֤
|
||||
:: -o : <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
||||
|
||||
call emcc "%WASM_FILE_ABS%" ^
|
||||
-s WASM=0 ^
|
||||
-s LEGACY_VM_SUPPORT=1 ^
|
||||
-s ALLOW_MEMORY_GROWTH=1 ^
|
||||
-s NO_EXIT_RUNTIME=1 ^
|
||||
-s MODULARIZE=1 ^
|
||||
-s EXPORT_NAME="PinballModule" ^
|
||||
-s EXPORTED_RUNTIME_METHODS="['ccall','cwrap']" ^
|
||||
-O3 ^
|
||||
--closure 0 ^
|
||||
-o "%OUTPUT_FILE_ABS%"
|
||||
set WASM2JS_PATH=%SCRIPT_DIR%emsdk\upstream\bin\wasm2js.exe
|
||||
|
||||
:: <20><><EFBFBD><EFBFBD> wasm2js <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
if not exist "%WASM2JS_PATH%" (
|
||||
echo <20><><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> wasm2js <20><><EFBFBD><EFBFBD>
|
||||
echo ·<><C2B7>: %WASM2JS_PATH%
|
||||
echo <20><>ȷ<EFBFBD><C8B7> Emscripten <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>װ
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo ʹ<>ù<EFBFBD><C3B9><EFBFBD>: %WASM2JS_PATH%
|
||||
echo.
|
||||
|
||||
call "%WASM2JS_PATH%" "%WASM_FILE_ABS%" ^
|
||||
-o "%OUTPUT_FILE_ABS%" ^
|
||||
--pedantic
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 转换失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: wasm2js ת<><D7AA>ʧ<EFBFBD><CAA7>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo 转换成功!
|
||||
echo ת<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 输出文件: %OUTPUT_FILE_ABS%
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>: %OUTPUT_FILE_ABS%
|
||||
|
||||
:: 显示文件大小
|
||||
:: <EFBFBD><EFBFBD>ʾ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С
|
||||
for %%A in ("%OUTPUT_FILE_ABS%") do (
|
||||
set file_size=%%~zA
|
||||
set /a size_kb=!file_size!/1024
|
||||
echo 文件大小: !size_kb! KB
|
||||
echo <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С: !size_kb! KB
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 使用方法:
|
||||
echo 在 HTML 中引入生成的 JS 文件,然后使用:
|
||||
echo ʹ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD>:
|
||||
echo <EFBFBD><EFBFBD> HTML <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD> JS <20>ļ<EFBFBD><C4BC><EFBFBD>Ȼ<EFBFBD><C8BB>ʹ<EFBFBD><CAB9>:
|
||||
echo PinballModule().then(function(Module) {
|
||||
echo // 使用 Module.ccall 调用导出的函数
|
||||
echo // ʹ<EFBFBD><EFBFBD> Module.ccall <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD>
|
||||
echo var result = Module.ccall('function_name', 'number', ['number'], [42]);
|
||||
echo });
|
||||
echo.
|
||||
@@ -133,7 +134,7 @@ goto :end
|
||||
|
||||
:error
|
||||
echo.
|
||||
echo 转换失败!
|
||||
echo ת<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
|
||||
@@ -2,102 +2,102 @@
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ========================================
|
||||
echo Emscripten 安装脚本 (版本: 3.1.41)
|
||||
echo Emscripten <EFBFBD><EFBFBD>װ<EFBFBD>ű<EFBFBD> (<28>汾: 3.1.41)
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
:: 设置变量
|
||||
:: <EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>
|
||||
set EMSCRIPTEN_VERSION=3.1.41
|
||||
set SCRIPT_DIR=%~dp0
|
||||
set EMSDK_DIR=%SCRIPT_DIR%emsdk
|
||||
|
||||
:: 检查是否已存在 emsdk 目录
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD> emsdk Ŀ¼
|
||||
if exist "%EMSDK_DIR%" (
|
||||
echo 检测到已存在的 emsdk 目录...
|
||||
set /p "choice=是否重新安装? (y/n): "
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD>ڵ<EFBFBD> emsdk Ŀ¼...
|
||||
set /p "choice=<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD>װ? (y/n): "
|
||||
if /i "!choice!" neq "y" (
|
||||
echo 安装已取消
|
||||
goto :end
|
||||
goto :install
|
||||
)
|
||||
echo 删除现有安装...
|
||||
echo ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>װ...
|
||||
rmdir /s /q "%EMSDK_DIR%"
|
||||
)
|
||||
|
||||
:: 检查 Git 是否可用
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Git <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
git --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 未找到 Git,请先安装 Git
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Git<69><74><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>װ Git
|
||||
goto :error
|
||||
)
|
||||
|
||||
:: 检查 Python 是否可用
|
||||
:: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Python <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
python --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 未找到 Python,请先安装 Python 3.x
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: δ<>ҵ<EFBFBD> Python<6F><6E><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>װ Python 3.x
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo 开始下载 Emscripten SDK...
|
||||
echo <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten SDK...
|
||||
cd /d "%SCRIPT_DIR%"
|
||||
git clone https://github.com/emscripten-core/emsdk.git
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 下载 Emscripten SDK 失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> Emscripten SDK ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
|
||||
:install
|
||||
echo.
|
||||
echo 进入 emsdk 目录...
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD> emsdk Ŀ¼...
|
||||
cd "%EMSDK_DIR%"
|
||||
|
||||
echo 安装和激活 Emscripten %EMSCRIPTEN_VERSION%...
|
||||
echo <EFBFBD><EFBFBD>װ<EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD> Emscripten %EMSCRIPTEN_VERSION%...
|
||||
call emsdk.bat install %EMSCRIPTEN_VERSION%
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 安装 Emscripten %EMSCRIPTEN_VERSION% 失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>װ Emscripten %EMSCRIPTEN_VERSION% ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 激活 Emscripten %EMSCRIPTEN_VERSION%...
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten %EMSCRIPTEN_VERSION%...
|
||||
call emsdk.bat activate %EMSCRIPTEN_VERSION%
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 激活 Emscripten %EMSCRIPTEN_VERSION% 失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> Emscripten %EMSCRIPTEN_VERSION% ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 设置环境变量...
|
||||
echo <EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
call emsdk_env.bat
|
||||
|
||||
echo.
|
||||
echo 验证安装...
|
||||
echo <EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>װ...
|
||||
call emcc --version
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: Emscripten 安装验证失败
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Emscripten <EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>֤ʧ<EFBFBD><EFBFBD>
|
||||
goto :error
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Emscripten %EMSCRIPTEN_VERSION% 安装成功!
|
||||
echo Emscripten %EMSCRIPTEN_VERSION% <EFBFBD><EFBFBD>װ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 注意事项:
|
||||
echo 1. 每次使用前需要运行 setup-env.bat 来设置环境变量
|
||||
echo 2. 或者手动运行: tools\emscripten\emsdk\emsdk_env.bat
|
||||
echo ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
echo 1. ÿ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> setup-env.bat <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
echo 2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: tools\emscripten\emsdk\emsdk_env.bat
|
||||
echo.
|
||||
echo 创建快速设置脚本...
|
||||
echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýű<EFBFBD>...
|
||||
echo @echo off > "%SCRIPT_DIR%setup-env.bat"
|
||||
echo echo 设置 Emscripten 环境变量... >> "%SCRIPT_DIR%setup-env.bat"
|
||||
echo echo <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... >> "%SCRIPT_DIR%setup-env.bat"
|
||||
echo call "%EMSDK_DIR%\emsdk_env.bat" >> "%SCRIPT_DIR%setup-env.bat"
|
||||
echo echo Emscripten 环境已设置完成 >> "%SCRIPT_DIR%setup-env.bat"
|
||||
echo echo Emscripten <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >> "%SCRIPT_DIR%setup-env.bat"
|
||||
|
||||
echo setup-env.bat 已创建
|
||||
echo setup-env.bat <EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD>
|
||||
goto :end
|
||||
|
||||
:error
|
||||
echo.
|
||||
echo ========================================
|
||||
echo 安装失败!请检查错误信息
|
||||
echo <EFBFBD><EFBFBD>װʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
echo ========================================
|
||||
exit /b 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user