Files
ci-emsdk/emsdk.bat
juj a0af5d7f95 Fix windows emsdk returncode (#1623)
When `emsdk install foo` would fail on Windows, the return code would
get ignored since there were later commands in the script file.

To fix that, capture the error code from the emsdk call, and output that
as the final return code.

Also a drive-by Python path fix, which seemed to be out of date in the
.ps1 file.
2025-10-25 00:22:31 +03:00

54 lines
1.3 KiB
Batchfile

@echo off
:: Find python from an explicit location relative to the Emscripten SDK.
setlocal
:: When using our bundled python we never want the users
:: PYTHONHOME or PYTHONPATH
:: https://github.com/emscripten-core/emsdk/issues/598
if exist "%~dp0python\3.13.3_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.13.3_64bit\python.exe"
set PYTHONHOME=
set PYTHONPATH=
goto end
)
if exist "%~dp0python\3.9.2_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.9.2_64bit\python.exe"
set PYTHONHOME=
set PYTHONPATH=
goto end
)
if exist "%~dp0python\3.9.2-nuget_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.9.2-nuget_64bit\python.exe"
set PYTHONHOME=
set PYTHONPATH=
goto end
)
:: As a last resort, access from PATH.
set EMSDK_PY=python
:end
call %EMSDK_PY% "%~dp0\emsdk.py" %*
:: If emsdk returned with error code >= 1, then skip executing emsdk_set_env
:: below.
if ERRORLEVEL 1 (
endlocal
exit /b %ERRORLEVEL%
)
endlocal
:: python is not able to set environment variables to the parent calling
:: process, so therefore have it craft a .bat file, which we invoke after
:: finishing python execution, to set up the environment variables
if exist "%~dp0\emsdk_set_env.bat" (
call "%~dp0\emsdk_set_env.bat" > nul
del /F /Q "%~dp0\emsdk_set_env.bat"
)