From 2421ce8f50eb09153e918e872e66e9002ebbd711 Mon Sep 17 00:00:00 2001 From: xqyjlj Date: Sun, 14 Dec 2025 00:12:51 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=8A=AF=E7=89=87=E5=8C=85=E6=A0=A1=E9=AA=8C=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=B8=8D=E5=AE=8C=E5=96=84=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xqyjlj --- server/coder/coder.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/server/coder/coder.py b/server/coder/coder.py index 6a2fc6de..a1efb09e 100644 --- a/server/coder/coder.py +++ b/server/coder/coder.py @@ -201,11 +201,18 @@ def _emit_copy_library_signal( pass def _check_hal_folder(self) -> bool: + if not os.path.isdir(self._project.hal_folder()): + logger.error( + f"the package({self._project.gen.hal}@{self._project.gen.halVersion!r}) is not installed." + ) + return False + + generator_file = f"{self._project.hal_folder()}/tools/generator/generator.py" if not os.path.isfile( f"{self._project.hal_folder()}/tools/generator/generator.py" ): logger.error( - f"{self._project.hal_folder()} is not directory! maybe package({self._project.gen.hal}) not yet installed." + f"{generator_file} is not exists! maybe package({self._project.gen.hal}) not yet installed." ) return False return True @@ -258,7 +265,23 @@ def _render( except jinja2.exceptions.TemplateNotFound: return "" - if suffix == ".h" or suffix == ".c": + if suffix.lower() in [ + ".c", + ".h", + ".cpp", + ".hpp", + ".cc", + ".hh", + ".c++", + ".h++", + ".s", + ".ld", + ".asm", + ".ld", + ".lds", + ".sct", + ".icf", + ]: args["user_code"] = self.match_user( abs_path, r"/\*\*<", r" \*/", r"/\*\*>", r" \*/" ) @@ -368,7 +391,7 @@ def _generate_mdk(self, mdk_cfg: dict): project_name = project.name # target chip - tree.find("Targets/Target/TargetOption/TargetCommonOption/Device").text = mdk_cfg["line"] # type: ignore + tree.find("Targets/Target/TargetOption/TargetCommonOption/Device").text = mdk_cfg.get("device") or mdk_cfg["line"] # type: ignore # vendor tree.find("Targets/Target/TargetOption/TargetCommonOption/Vendor").text = mdk_cfg["vendor"] # type: ignore