diff --git a/codegen/datatypes.py b/codegen/datatypes.py index 40a0f32..3ae8dd5 100644 --- a/codegen/datatypes.py +++ b/codegen/datatypes.py @@ -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) diff --git a/codegen/dbl_list/make_dbl_list.py b/codegen/dbl_list/make_dbl_list.py index 22476fe..636344a 100644 --- a/codegen/dbl_list/make_dbl_list.py +++ b/codegen/dbl_list/make_dbl_list.py @@ -2,7 +2,7 @@ from pathlib import Path from dataclasses import dataclass, field from typing import List, Dict from codegen.constants import WAPP_SRC_ROOT -from codegen.utils import load_func_body_from_file, convert_to_relative +from codegen.utils import load_func_body_from_file from codegen.datatypes import ( CDataType, CMacro, @@ -48,19 +48,9 @@ def make_dbl_list(user_datatypes: Dict[CDataType, DblListData] = {}): out_dir = WAPP_SRC_ROOT / "containers" / "dbl_list" out_dir.mkdir(parents=True, exist_ok=True) - common_local_include_files = [ - (WAPP_SRC_ROOT / "common" / "aliases" / "aliases.h") - ] common_includes: List[CInclude] = [ CInclude(header="stdbool.h") ] - for local_file in common_local_include_files: - common_includes.append( - CInclude( - header=str(convert_to_relative(local_file, out_dir)).replace("\\", "/"), - local=True, - ) - ) common_decl_types: List[CStruct] = [] @@ -101,15 +91,7 @@ def make_dbl_list(user_datatypes: Dict[CDataType, DblListData] = {}): header = CHeader( name="dbl_list", decl_types=[*common_decl_types], - includes=[ - CInclude( - header=str(convert_to_relative( - WAPP_SRC_ROOT / "common" / "platform" / "platform.h", - out_dir - )).replace("\\", "/"), - local=True, - ) - ], + includes=[], types=[], funcs=[] ) diff --git a/src/containers/dbl_list/dbl_list.c b/src/containers/dbl_list/dbl_list.c index f59ee2c..29cf756 100644 --- a/src/containers/dbl_list/dbl_list.c +++ b/src/containers/dbl_list/dbl_list.c @@ -4,6 +4,7 @@ #include "./dbl_list.h" #include "../../common/aliases/aliases.h" +#include "../../common/platform/platform.h" #include #include diff --git a/src/containers/dbl_list/dbl_list.h b/src/containers/dbl_list/dbl_list.h index 5098825..a7a9f24 100644 --- a/src/containers/dbl_list/dbl_list.h +++ b/src/containers/dbl_list/dbl_list.h @@ -5,8 +5,8 @@ #ifndef DBL_LIST_H #define DBL_LIST_H -#include "../../common/platform/platform.h" #include "../../common/aliases/aliases.h" +#include "../../common/platform/platform.h" #include #ifdef WAPP_PLATFORM_CPP