Files
pybindgen/README
T

54 lines
2.5 KiB
Plaintext

== About ==
PyBindGen is (surprise!) a python bindings generator. The main features are:
* Is written in clean, PEP 8 compliant, and pylint checked, Python code;
* Generates clean C or C++ code, nearly as readable as code written
manually by a developer;
* Generated code is self contained and does not require any external
libraries or macros; after generating the python module only python
header files are required, nothing else.
* Does not require Boost.Python (no C++ template magic, also works in C);
* The interface for code generation is a simple Python API, not some
obscure interface definition language. Additionally PyBindGen can
parse header files with gccxml, if gccxml and pygccxml are
installed in the system.
* Can be easily extended with new type handlers;
* Type handlers can allocate memory and register cleanup code to free;
* Supports in, out, and inout parameters (e.g. with pointers or C++ references);
* Supports multiple return values (e.g. due to out/inout parameters);
* Supports wrapping of simple C++ classes;
* Supports virtual methods in classes;
* Supports reference counted classes and smart pointers;
Notable features NOT implemented:
* Multiple inheritance; # relatively hard to support, little motivation
* Exceptions. # moderate difficulty, likely to be implemented sometime in the future
== Installation ==
Before proceeding make sure the system requirements are met. PyBindGen requires:
1- Python (http://www.python.org)
2- Python development files
3- A C/C++ Compilation tool chain
4- (optional) GCCXML and PyGCCXML (0.9.5 recommended) (http://www.language-binding.net/pygccxml/download.html)
PyBindGen uses WAF (http://code.google.com/p/waf/) as build system.
However, WAF does not have to be previously installed, as it is shipped
with PyBindGen in a single 'waf' script.
However, if you are checking out the bzr branch from launchpad then the waf script is not included. and you should get it from http://code.google.com/p/waf/downloads/list. WAF version 1.3.2 is known to work with PyBindGen. WAF 1.4.0 is known _not_ to work. WAF svn trunk may or not work.
To install PyBindGen, issue the following commands:
1. ./waf configure # optionally you may add the option --prefix /foo/bar
2. ./waf # possible options: -jN for parallel build, -p for progress bar
3. ./waf check # optional step, runs the unit tests
4. ./waf install # may require sudo
== Documentation ==
There is no documentation yet. For now there are some examples, in the 'examples' directory.