|
@@ -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)
|