Add aliases.h and platform.h by default in codegen
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user