mirror of
https://github.com/godotengine/godot.git
synced 2026-01-10 10:12:28 +03:00
The GDNative C API gets passed to libraries in a struct of function pointers. To provide stable binary compatibility, each extension not part of the core API is separated into its own sub-struct. These structs aren't meant to be changed in order to keep binary compatibility. In case of an API extension, the structs include a `next` pointer which can point to a new struct with additional function pointers. Godot's build system generates the API structs automatically at build time, but so far there has no support for the mentioned `next` pointers. This commit changes the API struct generation in such a way that code that used previous headers will compile without problem with the new headers. The new extension-extensions (weird name, but that's what it is) get generated recursively and include the version in the struct-name.