Files
ci-emsdk/emsdk.bat
Sam Clegg d845e506ce Fix python search path in emsdk launcher scripts (#1571)
The `-0` and `-1` suffixes here are not part of the install path which
only based on the `id` and `version` of the tool. e.g:

```
  {
    "id": "python",
    "version": "3.9.2",
    "bitness": 64,
    "arch": "x86_64",
    "windows_url": "python-3.9.2-1-embed-amd64+pywin32.zip",
    "activated_cfg": "PYTHON='%installation_dir%/python.exe'",
    "activated_env": "EMSDK_PYTHON=%installation_dir%/python.exe"
  },
```

Here we have a `-1` in the archive name, but that is not included in the
version which is used to construct the install path.

Fixes: #1570
2025-07-10 15:51:02 -07:00

47 lines
1.2 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" %*
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"
)