委托给 tools/dep_3rdparty.py,统一拉取 3rdparty 二进制 SDK(目前仅 WebView2)。 直接 in-process 调用,跳过情形下不再启动 Python 子进程;当依赖已经齐备时只产出 一行日志,体感上对齐 maafw/mxu 那条路径。具体下载逻辑、缓存策略、平台判断仍在 dep_3rdparty.py 内部,本函数只做编排。
(update: bool = False)
| 184 | |
| 185 | |
| 186 | def bootstrap_3rdparty(update: bool = False) -> bool: |
| 187 | """委托给 tools/dep_3rdparty.py,统一拉取 3rdparty 二进制 SDK(目前仅 WebView2)。 |
| 188 | |
| 189 | 直接 in-process 调用,跳过情形下不再启动 Python 子进程;当依赖已经齐备时只产出 |
| 190 | 一行日志,体感上对齐 maafw/mxu 那条路径。具体下载逻辑、缓存策略、平台判断仍在 |
| 191 | dep_3rdparty.py 内部,本函数只做编排。 |
| 192 | """ |
| 193 | global _dep_3rdparty_inited |
| 194 | try: |
| 195 | if not _dep_3rdparty_inited: |
| 196 | # 常规 import 不会触发 dep_3rdparty 自身的 `if __name__ == '__main__'` 引导, |
| 197 | # 需要手动给它初始化一次 locale,否则 t() 拿到的还是 raw key。 |
| 198 | dep_3rdparty.init_local() |
| 199 | _dep_3rdparty_inited = True |
| 200 | return dep_3rdparty.download_all(skip_if_exist=not update) |
| 201 | except Exception as exc: |
| 202 | traceback.print_exc() |
| 203 | print( |
| 204 | Console.err( |
| 205 | t( |
| 206 | "err_bootstrap_3rdparty_failed", |
| 207 | exc_type=type(exc).__name__, |
| 208 | error=exc, |
| 209 | ) |
| 210 | ) |
| 211 | ) |
| 212 | return False |
| 213 | |
| 214 | |
| 215 | def run_build_script() -> bool: |