44 lines
1.2 KiB (Stored with Git LFS)
Python
44 lines
1.2 KiB (Stored with Git LFS)
Python
from src.defintion_input import parse_package_input, parse_enum_inputs
|
|
from src.backend.cpp.render import cpp_render_enums, cpp_render_package_structs, cpp_render_util_fn, cpp_render_cmake
|
|
|
|
import os
|
|
import jinja2
|
|
from src.util import create_directory_path
|
|
|
|
TEMPLATE_DIR = "generator/templates"
|
|
OUTPUT_DIR = "out"
|
|
|
|
if __name__ == "__main__":
|
|
create_directory_path(TEMPLATE_DIR)
|
|
create_directory_path(OUTPUT_DIR)
|
|
|
|
jinja_env = jinja2.Environment(
|
|
loader=jinja2.FileSystemLoader([TEMPLATE_DIR]),
|
|
autoescape=jinja2.select_autoescape()
|
|
)
|
|
|
|
enum_dict = parse_enum_inputs("docs/Gobot RPC Defintion.ods")
|
|
packages_list = parse_package_input("docs/Gobot RPC Defintion.ods", enum_dict)
|
|
|
|
cpp_render_enums(
|
|
enum_dict.values(),
|
|
"GOBOTRPC", os.path.join(OUTPUT_DIR, "cpp", "include"),
|
|
jinja_env
|
|
)
|
|
|
|
cpp_render_package_structs(
|
|
packages_list,
|
|
"GOBOTRPC", os.path.join(OUTPUT_DIR, "cpp", "include"),
|
|
jinja_env
|
|
)
|
|
|
|
cpp_render_util_fn(
|
|
packages_list,
|
|
"GOBOTRPC", os.path.join(OUTPUT_DIR, "cpp", "src"),
|
|
jinja_env
|
|
)
|
|
|
|
cpp_render_cmake(
|
|
os.path.join(OUTPUT_DIR, "cpp"),
|
|
jinja_env
|
|
) |