From c746ed1eb3a5c14c272c7e47df943ad6302d968e Mon Sep 17 00:00:00 2001 From: aqua Date: Tue, 21 May 2024 06:31:33 +0300 Subject: Added interface_generator --- tools/interface_generator/templates/c_functions.mako | 4 ++++ tools/interface_generator/templates/c_header.mako | 13 +++++++++++++ tools/interface_generator/templates/c_system_include.mako | 4 ++++ tools/interface_generator/templates/c_types.mako | 6 ++++++ 4 files changed, 27 insertions(+) create mode 100644 tools/interface_generator/templates/c_functions.mako create mode 100644 tools/interface_generator/templates/c_header.mako create mode 100644 tools/interface_generator/templates/c_system_include.mako create mode 100644 tools/interface_generator/templates/c_types.mako (limited to 'tools/interface_generator/templates') diff --git a/tools/interface_generator/templates/c_functions.mako b/tools/interface_generator/templates/c_functions.mako new file mode 100644 index 0000000..a7f88be --- /dev/null +++ b/tools/interface_generator/templates/c_functions.mako @@ -0,0 +1,4 @@ +/* Functions */ +% for fn in functions: +${fn['return']} ${fn['name']}(${ ", ".join(fn['arguments']) }); +% endfor diff --git a/tools/interface_generator/templates/c_header.mako b/tools/interface_generator/templates/c_header.mako new file mode 100644 index 0000000..069b449 --- /dev/null +++ b/tools/interface_generator/templates/c_header.mako @@ -0,0 +1,13 @@ +/* This file is generated by ${PROG['name']} v${PROG['version']} */ + +/****************************************************************************** +<%include file="${license}" /> + ******************************************************************************/ + +#ifndef ${ name.upper() }_H +#define ${ name.upper() }_H + +<%include file="c_system_include.mako" /> +<%include file="c_types.mako" /> +<%include file="c_functions.mako" /> +#endif /* ${ name.upper() }_H */ diff --git a/tools/interface_generator/templates/c_system_include.mako b/tools/interface_generator/templates/c_system_include.mako new file mode 100644 index 0000000..d6a9d09 --- /dev/null +++ b/tools/interface_generator/templates/c_system_include.mako @@ -0,0 +1,4 @@ +/* System includes */ +% for path in system_includes: +#include <${path}> +% endfor diff --git a/tools/interface_generator/templates/c_types.mako b/tools/interface_generator/templates/c_types.mako new file mode 100644 index 0000000..ac32469 --- /dev/null +++ b/tools/interface_generator/templates/c_types.mako @@ -0,0 +1,6 @@ +/* Types */ +% for type in types: +typedef struct ${type['name']} { +${ "\n".join([ " {};".format(member) for member in type['members'] ]) } +} ${type['name']}; +% endfor -- cgit v1.2.1