This document describes how to build a native Python source package.
This can be used to install the Python bindings via pip.

First configure the project using 'cmake' then build it. You do not
need to install the project. See the INSTALL.md file at the project's
top directory for details on building.

Once you have built the project, there should be a 'dist' directory in
the Python bindings directory in the build directory.

For example, assuming the build directory is named 'build':

$ cd build/python/dist

You can now run the setup.py script from within the dist directory to
build your source distribution package.

To build a Python source distribution:

$ python ./setup.py sdist

To build and install:

$ python ./setup.py build install


