Kaydet (Commit) c7f9f2bf authored tarafından Éric Araujo's avatar Éric Araujo

Document how to define extension modules in setup.cfg

üst a462a807
...@@ -569,10 +569,10 @@ extension modules. ...@@ -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. ...@@ -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.
...@@ -141,6 +141,9 @@ files ...@@ -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 ...@@ -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
---------------- ----------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment