diff options
Diffstat (limited to 'bindgen/gen_zig.py')
| -rw-r--r-- | bindgen/gen_zig.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/bindgen/gen_zig.py b/bindgen/gen_zig.py index b5e14b7b..52f617e5 100644 --- a/bindgen/gen_zig.py +++ b/bindgen/gen_zig.py @@ -420,9 +420,13 @@ def gen_func_c(decl, prefix): l(f"extern fn {decl['name']}({funcdecl_args_c(decl, prefix)}) {funcdecl_result_c(decl, prefix)};") l('') -def gen_func_zig(decl, prefix): +def gen_func_zig(decl, prefix, tiger_style=False): c_func_name = decl['name'] - zig_func_name = util.as_lower_camel_case(check_override(decl['name']), prefix) + if not tiger_style: + zig_func_name = util.as_lower_camel_case(check_override(decl['name']), prefix) + else: + zig_func_name = util.as_lower_snake_case(check_override(decl['name']), prefix) + c(decl.get('comment')) if c_func_name in c_callbacks: # a simple forwarded C callback function @@ -552,7 +556,7 @@ def gen_helpers(inp): l('}') l('') -def gen_module(inp, dep_prefixes): +def gen_module(inp, dep_prefixes, opt={}): l('// machine generated, do not edit') if inp.get('comment'): l('') @@ -574,7 +578,8 @@ def gen_module(inp, dep_prefixes): gen_enum(decl, prefix) elif kind == 'func': gen_func_c(decl, prefix) - gen_func_zig(decl, prefix) + tiger_style = opt.get('tiger-style', False) + gen_func_zig(decl, prefix, tiger_style=tiger_style) def prepare(): print('=== Generating Zig bindings:') @@ -583,7 +588,7 @@ def prepare(): if not os.path.isdir('sokol-zig/src/sokol/c'): os.makedirs('sokol-zig/src/sokol/c') -def gen(c_header_path, c_prefix, dep_c_prefixes): +def gen(c_header_path, c_prefix, dep_c_prefixes, opt={}): if not c_prefix in module_names: print(f' >> warning: skipping generation for {c_prefix} prefix...') return @@ -593,7 +598,7 @@ def gen(c_header_path, c_prefix, dep_c_prefixes): reset_globals() shutil.copyfile(c_header_path, f'sokol-zig/src/sokol/c/{os.path.basename(c_header_path)}') ir = gen_ir.gen(c_header_path, c_source_path, module_name, c_prefix, dep_c_prefixes, with_comments=True) - gen_module(ir, dep_c_prefixes,) + gen_module(ir, dep_c_prefixes, opt) output_path = f"sokol-zig/src/sokol/{ir['module']}.zig" with open(output_path, 'w', newline='\n') as f_outp: f_outp.write(out_lines) |