emsdk/emsdk.bat

60 строки
1.5 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.9.2-1_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.9.2-1_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
)
if exist "%~dp0python\3.7.4-pywin32_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.7.4-pywin32_64bit\python.exe"
set PYTHONHOME=
set PYTHONPATH=
goto end
)
if exist "%~dp0python\3.7.4_64bit\python.exe" (
set EMSDK_PY="%~dp0python\3.7.4_64bit\python.exe"
set PYTHONHOME=
set PYTHONPATH=
goto end
)
if exist "%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe" (
set EMSDK_PY="%~dp0python\2.7.13.1_64bit\python-2.7.13.amd64\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" %*
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"
)