forked from dotnet/emsdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
emsdk.ps1
43 lines (36 loc) · 1.36 KB
/
emsdk.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$ScriptDirectory = Split-Path -parent $PSCommandPath
$PythonLocations = $(
"python\3.9.2-1_64bit\python.exe",
"python\3.9.2-nuget_64bit\python.exe",
"python\3.7.4-pywin32_64bit\python.exe",
"python\3.7.4_64bit\python.exe",
"python\2.7.13.1_64bit\python-2.7.13.amd64\python.exe",
"python\2.7.13.1_32bit\python-2.7.13\python.exe",
"python\2.7.5.3_64bit\python.exe",
"python\2.7.5.3_32bit\python.exe",
"python\2.7.5_64bit\python.exe",
"python\2.7.5.1_32bit\python.exe"
)
# Find python from an explicit location relative to the Emscripten SDK.
foreach ($Location in $PythonLocations) {
$FullLocation = Join-Path $ScriptDirectory $Location
if (Test-Path $FullLocation) {
$EMSDK_PY = $FullLocation
break
}
}
# As a last resort, access from PATH.
if (-Not $EMSDK_PY) {
$EMSDK_PY = "python"
}
# Tell EMSDK to create environment variable setter as a .ps1 file
$env:EMSDK_POWERSHELL = 1
& $EMSDK_PY "$ScriptDirectory/emsdk.py" $args
# 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) {
& $ScriptDirectory/emsdk_set_env.ps1
Remove-Item $ScriptDirectory/emsdk_set_env.ps1
}
Remove-Item Env:\EMSDK_POWERSHELL