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 )