This is a list of Frequently Asked Questions about Shiboken. Feel free to suggest new entries!
Shiboken is a GeneratorRunner plugin that outputs C++ code for CPython extensions. The first version of PySide had source code based on Boost templates. It was easier to produce code but a paradigm change was needed, as the next question explains.
The main reason was the size reduction. Boost.Python makes excessive use of templates resulting in a significant increase of the binaries size. On the other hand, as Shiboken generates CPython code, the resulting binaries are smaller.
Yes. Check Shiboken source code for an example (libsample).
Yes. Only libshiboken, and the obvious Python interpreter and the C++ library that is being wrapped.
Most of the work is already done by the API Extractor. The developer creates a typesystem file with any customization wanted in the generated code, like removing classes or changing method signatures. The generator will output the .h and .cpp files with the CPython code that will wrap the target library for python.
Both API Extractor and generator uses and recommends the CMake build system.
Yes, as long as you use a LGPL version of Qt, due to runtime requirements.
That’s how we call customized code that will be injected into the generated at specific locations. They are specified inside the typesytem.