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
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

Correct Generator Scheme
Reference Documentation
- Shiboken Overview
- Compiling
- Binding Generation Tutorial
- BoostPythonGenerator (No longer maintained)




