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.