2. Basic File Structure and CMake configurationΒΆ
As a first example we will consider the Hurrican::Library class. To export a class into Python, we must create three files:
- PyLibrary.h, defines the PyLibrary C-Struct and the functions needed outside the module istself (mostly for PyHurricane.cpp).
- PyLibrary.cpp, contains the complete wrapping of the class and the Python type definition (PyTypeLibrary).
- PyHurricane.cpp, the definition of the Python module into which the classes are registered. The module act as a namespace in Python so it is good practice to give it the same name as it’s associated C++ namespace.
To build a Python module in cmake, use the following macro:
set( pyCpps PyLibrary.cpp PyHurricane.cpp ) set( pyIncludes hurricane/isobar/PyLibrary.h add_python_module( "${pyCpps}" "${pyIncludes}" "isobar;1.0;1" # Name & version of the supporting # shared library. Hurricane # Name of the Python module will give: # Hurricane.so "${depLibs}" # List of dependency libraries. include/coriolis2/hurricane/isobar # Where to install the include files. )