(extra_args: List[str])
| 28 | |
| 29 | |
| 30 | def build_args(extra_args: List[str]) -> List[str]: |
| 31 | version, build_version = read_versions() |
| 32 | disable_console = "--disable-console" in extra_args |
| 33 | extra_args = [arg for arg in extra_args if arg != "--disable-console"] |
| 34 | args = [ |
| 35 | sys.executable, |
| 36 | "-m", |
| 37 | "nuitka", |
| 38 | "--clang", |
| 39 | "--lto=yes", |
| 40 | f"--product-version={version}", |
| 41 | f"--file-version={build_version}", |
| 42 | "--product-name=MCSL 2", |
| 43 | "--company-name=MCSLTeam", |
| 44 | "--file-description=MCServerLauncher 2", |
| 45 | "--copyright=Copyright (C) MCSLTeam. All rights reserved.", |
| 46 | "--include-package=MCSL2Lib", |
| 47 | "--include-package=sqlite3", |
| 48 | "--follow-import-to=Adapters", |
| 49 | "--follow-import-to=loguru", |
| 50 | "--follow-import-to=requests", |
| 51 | "--follow-import-to=croniter", |
| 52 | "--follow-import-to=openai", |
| 53 | "--follow-import-to=pytz", |
| 54 | "--follow-import-to=pypdl", |
| 55 | "--nofollow-import-to=numpy", |
| 56 | "--nofollow-import-to=scipy", |
| 57 | "--nofollow-import-to=PIL", |
| 58 | "--nofollow-import-to=colorthief", |
| 59 | "--nofollow-import-to=sqlite3.test", |
| 60 | "--enable-plugins=pyqt5", |
| 61 | "--assume-yes-for-downloads", |
| 62 | f"--output-dir={OUTPUT_DIR}", |
| 63 | ] |
| 64 | if sys.platform == "win32": |
| 65 | args.append("--standalone") |
| 66 | args.append("--msvc=latest") |
| 67 | args.append("--windows-icon-from-ico=MCSL2.ico") |
| 68 | has_console_mode = any(arg.startswith("--windows-console-mode=") for arg in extra_args) |
| 69 | if disable_console and not has_console_mode: |
| 70 | args.append("--windows-console-mode=disable") |
| 71 | elif sys.platform.startswith("linux"): |
| 72 | args.append("--standalone") |
| 73 | args.append("--linux-icon=MCSL2.ico") |
| 74 | elif sys.platform == "darwin": |
| 75 | args.append("--mode=app") |
| 76 | args.append("--macos-app-mode=gui") |
| 77 | args.append("--macos-app-icon=MCSL2.icns") |
| 78 | args.append(f"--macos-app-version={version}") |
| 79 | args.append("--macos-prohibit-multiple-instances") |
| 80 | args.append("--macos-signed-app-name=cn.mcslteam.mcsl2") |
| 81 | |
| 82 | args.extend(extra_args) |
| 83 | args.append(str(MAIN_SCRIPT)) |
| 84 | return args |
| 85 | |
| 86 | |
| 87 | def main() -> int: |
no test coverage detected