From e914930a0f6ff4989b55a77dceeda1f7ea2daa16 Mon Sep 17 00:00:00 2001 From: shenjack <3695888@qq.com> Date: Sun, 14 May 2023 02:08:31 +0800 Subject: [PATCH] add nuitka build script --- libs/utils/nuitka.py | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 libs/utils/nuitka.py diff --git a/libs/utils/nuitka.py b/libs/utils/nuitka.py new file mode 100644 index 0000000..53f31d6 --- /dev/null +++ b/libs/utils/nuitka.py @@ -0,0 +1,56 @@ +# ------------------------------- +# Difficult Rocket +# Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com +# All rights reserved +# ------------------------------- + +# 用于使用 nuitka 构建 DR +import platform +import traceback +from pathlib import Path +from typing import List + +from Difficult_Rocket.api.types import Options +from libs.MCDR.version import Version + + +class Status(Options): + name = 'Nuitka Build Status' + + output_path: Path = Path("./build/nuitka") + src_file: Path = Path('DR.py') + + # 以下为 nuitka 的参数 + use_lto: bool = False + use_clang: bool = True + use_msvc: bool = True + standalone: bool = True + company_name: str = 'tool-shenjack-workshop' + product_name: str = 'Difficult-Rocket' + product_version: Version + file_version: Version + icon_path: Path = Path('textures/icon.png') + + def init(self, **kwargs) -> None: + # 非 windows 平台不使用 msvc + if platform.system() != 'Windows': + self.use_msvc = False + + def load_file(self) -> bool: + try: + from Difficult_Rocket import DR_runtime + self.product_version = DR_runtime.DR_version + self.file_version = DR_runtime.Build_version + return True + except ImportError: + traceback.print_exc() + return False + + def gen_subprocess_cmd(self) -> List[str]: + # macos 和 非 macos icon 参数不同 + if platform.system() == 'Darwin': + icon_cmd = f"--macos-app-icon={self.icon_path.absolute()}" + elif platform.system() == 'Windows': + icon_cmd = f"--windows-icon-from-ico={self.icon_path.absolute()}" + else: + icon_cmd = ""