Binding Generator

The Binding Generator is a utility that parses the headers for a given C/C++ library, generates a model and modifies it based on XML files (called typesystem files) containing complementary semantic information, modifications, renamings, etc, in order to generate binding source code (or documentation) for the target language for which it was written.

Architecture

Binding Generators are created using the Generator Runner facilities, which are composed of the abstract Generator class, that must be extended by generator front-ends and build as loadable modules. The Generator Runner application is responsible for instantiating the API Extractor to parse the headers and binding information from the typesystem files, after that it will load and call the generator front-ends indicated by the user.

Binding Generator Architecture

Binding Generator Architecture

Limitations

The Python binding generator as it is now delivers code too much tied to Qt and the PySide Python binding, specifically it relies on a base library provided by PySide to take care of a number of situations that must be dealt with. Some are very specific to Qt (signals) and are in the proper place with PySide, others (wrapper-C++ relationships, ownership, etc) are generic binding stuff and should be provided in a generic fashion by the Binding Generator.

Current Generator Scheme

Current Generator Scheme

Correct Generator Scheme

Correct Generator Scheme

Reference Documentation