Lazily load emcc.py as a Python module for in-process invocation.
()
| 248 | |
| 249 | |
| 250 | def _load_emcc_module(): |
| 251 | """Lazily load emcc.py as a Python module for in-process invocation.""" |
| 252 | global _emcc_module |
| 253 | if _emcc_module is not None: |
| 254 | return _emcc_module |
| 255 | |
| 256 | setup_emscripten_env() |
| 257 | if _emscripten_dir is None: |
| 258 | return None |
| 259 | |
| 260 | emcc_py = _emscripten_dir / "emcc.py" |
| 261 | if not emcc_py.exists(): |
| 262 | return None |
| 263 | |
| 264 | # Add emscripten dir to sys.path so emcc.py can import its 'tools' package |
| 265 | emscripten_str = str(_emscripten_dir) |
| 266 | if emscripten_str not in sys.path: |
| 267 | sys.path.insert(0, emscripten_str) |
| 268 | |
| 269 | spec = importlib.util.spec_from_file_location("emcc", str(emcc_py)) |
| 270 | if spec is None or spec.loader is None: |
| 271 | return None |
| 272 | mod = importlib.util.module_from_spec(spec) |
| 273 | spec.loader.exec_module(mod) |
| 274 | _emcc_module = mod |
| 275 | return _emcc_module |
| 276 | |
| 277 | |
| 278 | def run_emcc(args: list[str], cwd: Optional[str] = None) -> int: |
no test coverage detected