Add aliases.h and platform.h by default in codegen

This commit is contained in:
2025-04-20 20:10:10 +01:00
parent 9e34b37d8d
commit 0d541f6ee8
4 changed files with 22 additions and 27 deletions

View File

@@ -3,6 +3,9 @@ from pathlib import Path
from typing import Optional, Union, List
from dataclasses import dataclass, field
from codegen.constants import WAPP_SRC_ROOT
from codegen.utils import convert_to_relative
class CType(Enum):
VOID = "void"
@@ -203,10 +206,25 @@ class CInclude:
class CFile:
name: str
extension: str
includes: List[CInclude] = field(default_factory=list)
types: List[CUserType] = field(default_factory=list)
funcs: List[CFunc] = field(default_factory=list)
decl_types: List[CStruct] = field(default_factory=list)
macros: List[CMacro] = field(default_factory=list)
def save(self, output_dir: Path):
self.includes.extend(
[
CInclude(
header=str(convert_to_relative(WAPP_SRC_ROOT / "common" / "aliases" / "aliases.h", output_dir)).replace("\\", "/"),
local=True,
),
CInclude(
header=str(convert_to_relative(WAPP_SRC_ROOT / "common" / "platform" / "platform.h", output_dir)).replace("\\", "/"),
local=True,
)
]
)
output_file = output_dir / f"{self.name}.{self.extension}"
with open(output_file, "w+") as outfile:
outfile.write(str(self))
@@ -223,9 +241,6 @@ class CFile:
@dataclass
class CHeader(CFile):
extension: str = "h"
includes: List[CInclude] = field(default_factory=list)
types: List[CUserType] = field(default_factory=list)
funcs: List[CFunc] = field(default_factory=list)
def __str__(self) -> str:
name_upper = self.name.upper()
@@ -275,10 +290,7 @@ class CHeader(CFile):
@dataclass
class CSource(CFile):
extension: str = "c"
includes: List[CInclude] = field(default_factory=list)
types: List[CUserType] = field(default_factory=list)
internal_funcs: List[CFunc] = field(default_factory=list)
funcs: List[CFunc] = field(default_factory=list)
def __str__(self) -> str:
includes = _get_includes_string(self.includes)