12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import os, argparse, gen_nim, gen_zig, gen_odin, gen_rust, gen_d, gen_jai, gen_c3, shutil
- parser = argparse.ArgumentParser()
- parser.add_argument("--zig-tiger-style", action="store_true", help="Enable zig tiger style mode.")
- args = parser.parse_args()
- tasks = [
- [ '../sokol_log.h', 'slog_', [] ],
- [ '../sokol_gfx.h', 'sg_', [] ],
- [ '../sokol_app.h', 'sapp_', [] ],
- [ '../sokol_glue.h', 'sglue_', ['sg_'] ],
- [ '../sokol_time.h', 'stm_', [] ],
- [ '../sokol_audio.h', 'saudio_', [] ],
- [ '../util/sokol_gl.h', 'sgl_', ['sg_'] ],
- [ '../util/sokol_debugtext.h', 'sdtx_', ['sg_'] ],
- [ '../util/sokol_shape.h', 'sshape_', ['sg_'] ],
- ]
- # Jai
- gen_jai.prepare()
- for task in tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_jai.gen(c_header_path, main_prefix, dep_prefixes)
- # Odin
- gen_odin.prepare()
- for task in tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_odin.gen(c_header_path, main_prefix, dep_prefixes)
- # Nim
- gen_nim.prepare()
- for task in tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_nim.gen(c_header_path, main_prefix, dep_prefixes)
- # Zig
- zig_tasks = [
- *tasks,
- [ '../sokol_fetch.h', 'sfetch_', [] ],
- [ '../util/sokol_imgui.h', 'simgui_', ['sg_', 'sapp_'] ],
- ]
- gen_zig.prepare()
- for task in zig_tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_zig.gen(c_header_path, main_prefix, dep_prefixes, {"tiger-style": args.zig_tiger_style})
- # D
- d_tasks = [
- *tasks,
- [ '../sokol_args.h', 'sargs_', [] ],
- [ '../sokol_fetch.h', 'sfetch_', [] ],
- [ '../util/sokol_memtrack.h', 'smemtrack_', [] ],
- [ '../util/sokol_imgui.h', 'simgui_', ['sg_', 'sapp_'] ],
- ]
- # check if nuklear.h is available and copy it
- if os.path.exists('../tests/ext/nuklear.h'):
- d_tasks.append([ '../util/sokol_nuklear.h', 'snk_', ['sg_', 'sapp_'] ])
- if os.path.exists('sokol-d'):
- shutil.copy('../tests/ext/nuklear.h', 'sokol-d/src/sokol/c/nuklear.h')
- gen_d.prepare()
- for task in d_tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_d.gen(c_header_path, main_prefix, dep_prefixes)
- # drop nuklear.h if copied (after generated D files)
- if os.path.exists('sokol-d/src/sokol/c/nuklear.h'):
- os.remove('sokol-d/src/sokol/c/nuklear.h')
- # Rust
- gen_rust.prepare()
- for task in tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_rust.gen(c_header_path, main_prefix, dep_prefixes)
- # C3
- gen_c3.prepare()
- for task in tasks:
- [c_header_path, main_prefix, dep_prefixes] = task
- gen_c3.gen(c_header_path, main_prefix, dep_prefixes)
|