diff --git a/emsdk.bat b/emsdk.bat index 6f5b33a..9019b90 100644 --- a/emsdk.bat +++ b/emsdk.bat @@ -35,6 +35,13 @@ 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 diff --git a/emsdk.ps1 b/emsdk.ps1 index 81b798a..111047f 100644 --- a/emsdk.ps1 +++ b/emsdk.ps1 @@ -1,8 +1,8 @@ $ScriptDirectory = Split-Path -parent $PSCommandPath $PythonLocations = $( - "python\3.13.3-0_64bit\python.exe", - "python\3.9.2-1_64bit\python.exe", + "python\3.13.3_64bit\python.exe", + "python\3.9.2_64bit\python.exe", "python\3.9.2-nuget_64bit\python.exe" ) @@ -25,12 +25,16 @@ $env:EMSDK_POWERSHELL = 1 & $EMSDK_PY "$ScriptDirectory/emsdk.py" $args +$ExitCode = $LASTEXITCODE + # python is not able to set environment variables to the parent calling process, so # therefore have it craft a .ps1 file, which we invoke after finishing python execution, # to set up the environment variables -if (Test-Path $ScriptDirectory/emsdk_set_env.ps1) { +if ($ExitCode -eq 0 -and (Test-Path $ScriptDirectory/emsdk_set_env.ps1)) { & $ScriptDirectory/emsdk_set_env.ps1 Remove-Item $ScriptDirectory/emsdk_set_env.ps1 } Remove-Item Env:\EMSDK_POWERSHELL + +exit $ExitCode diff --git a/test/test.py b/test/test.py index e835ebf..bd3c3ca 100755 --- a/test/test.py +++ b/test/test.py @@ -220,6 +220,8 @@ int main() { def test_binaryen_from_source(self): if MACOS: self.skipTest("https://github.com/WebAssembly/binaryen/issues/4299") + if WINDOWS: + self.skipTest("https://github.com/emscripten-core/emsdk/issues/1624") print('test binaryen source build') run_emsdk(['install', '--build=Release', '--generator=Unix Makefiles', 'binaryen-main-64bit'])