Document how to define extension modules in setup.cfg

This commit is contained in:
Éric Araujo 2011-06-09 08:18:17 +02:00
parent a462a80722
commit c7f9f2bfc7
2 changed files with 36 additions and 2 deletions

View File

@ -569,10 +569,10 @@ extension modules.
.. class:: Extension .. class:: Extension
The Extension class describes a single C or C++ extension module. It accepts The Extension class describes a single C or C++ extension module. It accepts
the following keyword arguments in its constructor the following keyword arguments in its constructor:
+------------------------+--------------------------------+---------------------------+ +------------------------+--------------------------------+---------------------------+
| argument name | value | type | | argument name | value | type [#]_ |
+========================+================================+===========================+ +========================+================================+===========================+
| *name* | the full name of the | string | | *name* | the full name of the | string |
| | extension, including any | | | | extension, including any | |
@ -670,3 +670,5 @@ extension modules.
| | from the source extensions if | | | | from the source extensions if | |
| | not provided. | | | | not provided. | |
+------------------------+--------------------------------+---------------------------+ +------------------------+--------------------------------+---------------------------+
.. [#] For values documented as lists, the given type is the type of each element.

View File

@ -141,6 +141,9 @@ files
Modules, scripts, data, documentation and other files to include in the Modules, scripts, data, documentation and other files to include in the
distribution. distribution.
extension sections
Options used to build extension modules.
command sections command sections
Options given for specific commands, identical to those that can be given Options given for specific commands, identical to those that can be given
on the command line. on the command line.
@ -736,6 +739,35 @@ We use brace expansion syntax to place all the shell and batch scripts into
{scripts} category. {scripts} category.
Extension sections
------------------
If a project includes extension modules written in C or C++, each one of them
needs to have its options defined in a dedicated section. Here's an example::
[files]
packages = coconut
[extension=_fastcoconut]
name = coconut._fastcoconut
language = cxx
sources = cxx_src/cononut_utils.cxx
cxx_src/python_module.cxx
include_dirs = /usr/include/gecode
/usr/include/blitz
extra_compile_args =
-fPIC -O2
-DGECODE_VERSION=$(./gecode_version) -- sys.platform != 'win32'
/DGECODE_VERSION='win32' -- sys.platform == 'win32'
The section name must start with ``extension=``; the righ-hand part is currently
discarded. Valid fields and their values are listed in the documentation of the
:class:`packaging.compiler.extension.Extension` class; values documented as
Python lists translate to multi-line values in the configuration file. In
addition, multi-line values accept environment markers on each line, after a
``--``.
Command sections Command sections
---------------- ----------------