aboutsummaryrefslogtreecommitdiff
path: root/bindgen/gen_zig.py
diff options
context:
space:
mode:
Diffstat (limited to 'bindgen/gen_zig.py')
-rw-r--r--bindgen/gen_zig.py17
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)