Skip to content

Commit 90f65ea

Browse files
committed
Fix
1 parent d063eb4 commit 90f65ea

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

Tools/wasm/emscripten/__main__.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,28 @@ def validate_emsdk_version(emsdk_cache):
6262
print(f"✅ Emscripten version {required_version} found in {emsdk_cache}")
6363

6464

65+
def parse_env(text):
66+
result = {}
67+
for line in text.splitlines():
68+
key, val = line.split("=", 1)
69+
result[key] = val
70+
return result
71+
72+
73+
@functools.cache
74+
def get_emsdk_env(emsdk_cache):
75+
env_text = subprocess.check_output(
76+
[
77+
"bash",
78+
"-c",
79+
f"EMSDK_QUIET=1 source {get_emsdk_activate_path(emsdk_cache)} && env",
80+
],
81+
text=True,
82+
)
83+
env = parse_env(env_text)
84+
return {key: env[key] for key in ["PATH", "EMSDK", "EMSDK_NODE"]}
85+
86+
6587
def updated_env(updates, emsdk_cache):
6688
"""Create a new dict representing the environment to use.
6789
@@ -80,15 +102,7 @@ def updated_env(updates, emsdk_cache):
80102
# This layering lets SOURCE_DATE_EPOCH from os.environ takes precedence.
81103
environment = env_defaults | os.environ | updates
82104
if emsdk_cache:
83-
env = os.environ.copy()
84-
call(
85-
["bash", "-c", f"source {get_emsdk_activate_path(emsdk_cache)}"],
86-
env=env,
87-
quiet=False,
88-
)
89-
for key in ["PATH", "EMSDK", "EMSDK_NODE"]:
90-
environment[key] = env[key]
91-
105+
environment |= get_emsdk_env(emsdk_cache)
92106
env_diff = {}
93107
for key, value in environment.items():
94108
if os.environ.get(key) != value:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4.0.12

0 commit comments

Comments
 (0)