Building Your Extension with distutils¶
Note
This should not be used for new projects as it will not be supported by SIP v5.
To build the example in A Simple C++ Example using distutils, it is
sufficient to create a standard setup.py, listing word.sip among the
files to build, and hook-up SIP into distutils:
from distutils.core import setup, Extension
import sipdistutils
setup(
name = 'word',
versione = '1.0',
ext_modules=[
Extension("word", ["word.sip", "word.cpp"]),
],
cmdclass = {'build_ext': sipdistutils.build_ext}
)
As we can see, the above is a normal distutils setup script, with just a
special line which is needed so that SIP can see and process word.sip.
Then, running setup.py build will build our extension module.
If you want to use any of sip’s command-line options described in
The SIP Command Line, there is a new option available for the
build_ext command in distutils: --sip-opts. So you can either invoke
distutils as follows:
$ python setup.py build_ext --sip-opts="-e -g" build
or you can leverage distutils’ config file support by creating a setup.cfg
file in the supported system or local paths (eg: in the same directory of
setup.py) with these contents:
[build_ext]
sip-opts = -e -g
and then run setup.py build as usual.
If sip-opts has not been specified then any swig_opts defined when
creating the Extension will be used.