-
Notifications
You must be signed in to change notification settings - Fork 0
home
DiasFranciscoA edited this page Feb 25, 2026
·
4 revisions
Welcome to extgen, a schema-driven code generator for GameMaker native extensions.
From a single GMIDL input file, extgen can generate:
- GML bindings (plus optional runtime helpers)
- Native glue code for multiple platforms (Android / iOS / tvOS / consoles)
- A complete CMake project + presets to build your extension
- Optional docs output for downstream tooling
The goal: one source of truth β repeatable, consistent extension output.
extgen --init ./my-extensionThis creates:
config.jsonextgen.schema.json
Set:
- your GMIDL input (
input) - your output root (
root) - desired targets (
targets.*) - build emission (
build.emitCmake)
extgen --config ./my-extension/config.json- User Manual - how to run extgen, configure targets, and understand all schema options
- GMIDL Introduction - how to start declaring your extension functions
- Implementation Workflow - recommended / suggested workflows for the various targets
- Architecture / Developer Docs - project structure, emitters, pipeline, where to contribute
- Build extgen - build the tool from CLI, Visual Studio, or VS Code
Your config.json is validated via extgen.schema.json.
If the schema validates, extgen should run reliably.
extgen is target-driven, not βlanguage toggles drivenβ.
Enabling a target (like Windows or iOS) automatically implies the correct underlying emitters (like C++ where required).
Use profiles to control what gets emitted:
- Full β bindings + native glue + build system
- BindingsOnly β only bindings (no native/build output)
- BuildOnly β only build system (CMake / presets)
- If you're a user: start with User Manual
- If you're contributing: start with Architecture / Developer Docs
- If youβre building the tool: go to Build extgen
extgen is designed to be extended:
- new platforms
- new emitters
- improved templates
- better docs and examples
If you want to contribute, check Architecture / Developer Docs and follow the repository contribution guidelines.
Happy generating π
GameMaker 2026