As a data point, I have successfully generated bindings for glfw, with the help of Claude. It is a bit rough around the edges, but compiles and successfully open a window with an opengl context on macos.
One of the workaround that was required was this, which could be addressed in sobind:
/* gl3.h forward-declares __GLsync only via `typedef struct __GLsync *GLsync;`,
so the bare name `__GLsync` is not a typedef on its own. The so toolchain
emits references like `__GLsync*` (without the struct keyword), so we
provide the missing typedef here. */
typedef struct __GLsync __GLsync;
#include <OpenGL/gl3.h>
Another one was to manually remove duplicate declarations (for pthread in this case as they are referenced in both opengl and glfw).
As a data point, I have successfully generated bindings for glfw, with the help of Claude. It is a bit rough around the edges, but compiles and successfully open a window with an opengl context on macos.
One of the workaround that was required was this, which could be addressed in
sobind:Another one was to manually remove duplicate declarations (for pthread in this case as they are referenced in both opengl and glfw).