fix build steps

This commit is contained in:
2026-06-07 23:14:44 +08:00
parent 0cb11473ea
commit 1d49b63295
5 changed files with 17 additions and 144 deletions
+10 -17
View File
@@ -13,28 +13,21 @@ if %errorlevel% == 0 (
powershell -Command "(Get-Content thirdparty/leanclr/src/runtime/build_config.h) -replace 'LEANCLR_FATAL_ON_RAISE_NOT_IMPLEMENTED_ERROR 1', 'LEANCLR_FATAL_ON_RAISE_NOT_IMPLEMENTED_ERROR 0' | Set-Content thirdparty/leanclr/src/runtime/build_config.h"
)
REM Find the Emscripten toolchain. Override via EMSDK_TOOLCHAIN if needed.
if "%EMSDK_TOOLCHAIN%"=="" (
for /f "delims=" %%i in ('where emcc 2^>nul') do set "EMCC_PATH=%%i"
if not "%EMCC_PATH%"=="" (
REM <emsdk>\upstream\emscripten\emcc -> <emsdk>\upstream\emscripten\cmake\Modules\Platform\Emscripten.cmake
for %%i in ("%EMCC_PATH%") do set "EMCC_DIR=%%~dpi"
set "EMSDK_TOOLCHAIN=%EMCC_DIR%cmake\Modules\Platform\Emscripten.cmake"
)
)
if "%EMSDK_TOOLCHAIN%"=="" (
echo [build-web] Emscripten toolchain not found. Set EMSDK_TOOLCHAIN to: 1>&2
echo [build-web] ^<emsdk^>\upstream\emscripten\cmake\Modules\Platform\Emscripten.cmake 1>&2
REM Assume Emscripten is on PATH (emsdk_env.bat / emsdk activated).
where emcc >nul 2>&1
if errorlevel 1 (
echo [build-web] emcc not found on PATH. Activate Emscripten via emsdk_env.bat first. 1>&2
exit /b 1
)
echo [build-web] Using toolchain: %EMSDK_TOOLCHAIN%
echo [build-web] Using emcc from PATH.
cmake -S . -B build-web -G Ninja -DCMAKE_TOOLCHAIN_FILE="%EMSDK_TOOLCHAIN%" -DCMAKE_BUILD_TYPE=Release || exit /b 1
python tools\binding_generator\generate_bindings.py --api build-web\_deps\godot-cpp-src\gdextension\extension_api.json
emcmake cmake -S . -B build-web -G Ninja -DCMAKE_BUILD_TYPE=Release
if errorlevel 1 (
py tools\binding_generator\generate_bindings.py --api build-web\_deps\godot-cpp-src\gdextension\extension_api.json
echo [build-web] Initial cmake configure failed, running binding generator and retrying...
python3 tools\binding_generator\generate_bindings.py --api build-web\_deps\godot-cpp-src\gdextension\extension_api.json
if errorlevel 1 exit /b 1
emcmake cmake -S . -B build-web -G Ninja -DCMAKE_BUILD_TYPE=Release || exit /b 1
)
cmake -S . -B build-web -G Ninja -DCMAKE_TOOLCHAIN_FILE="%EMSDK_TOOLCHAIN%" -DCMAKE_BUILD_TYPE=Release || exit /b 1
cmake --build build-web --target leanclr_godot || exit /b 1
dotnet msbuild managed\GodotSharpCompat\GodotSharpCompat.csproj -p:Configuration=Debug || exit /b 1