[fixup]: write documentation
This commit is contained in:
parent
33abe0cf55
commit
56fc22075c
|
@ -0,0 +1,195 @@
|
|||
---
|
||||
short-description: Generic python module
|
||||
authors:
|
||||
- name: Mathieu Duponchelle
|
||||
email: mathieu@centricular.com
|
||||
years: [2018]
|
||||
has-copyright: false
|
||||
...
|
||||
|
||||
# Python module
|
||||
|
||||
This module provides support for finding and building extensions against
|
||||
python installations, be they python 2 or 3.
|
||||
|
||||
*Added 0.46.0*
|
||||
|
||||
## Functions
|
||||
|
||||
### `find_installation()`
|
||||
|
||||
``` meson
|
||||
pymod.find_installation(name_or_path, ...)
|
||||
```
|
||||
|
||||
Find a python installation matching `name_or_path`.
|
||||
|
||||
That argument is optional, if not provided then the returned python
|
||||
installation will be the one used to run meson.
|
||||
|
||||
If provided, it can be:
|
||||
|
||||
- A simple name, eg `python-2.7`, meson will look for an external program
|
||||
named that way, using [find_program]
|
||||
|
||||
- A path, eg `/usr/local/bin/python3.4m`
|
||||
|
||||
- One of `python2` or `python3`: in either case, the module will try some
|
||||
alternative names: `py -2` or `py -3` on Windows, and `python` everywhere.
|
||||
In the latter case, it will check whether the version provided by the
|
||||
sysconfig module matches the required major version
|
||||
|
||||
Keyword arguments are the following:
|
||||
|
||||
- `required`: by default, `required` is set to `true` and Meson will
|
||||
abort if no python installation can be found. If `required` is set to `false`,
|
||||
Meson will continue even if no python installation was found. You can
|
||||
then use the `.found()` method on the returned object to check
|
||||
whether it was found or not.
|
||||
|
||||
**Returns**: a [python installation][`python_installation` object]
|
||||
|
||||
## `python_installation` object
|
||||
|
||||
The `python_installation` object is an [external program], with several
|
||||
added methods.
|
||||
|
||||
### Methods
|
||||
|
||||
#### `extension_module()`
|
||||
|
||||
``` meson
|
||||
shared_module py_installation.extension_module(module_name, list_of_sources, ...)
|
||||
```
|
||||
|
||||
Create a `shared_module` target that is named according to the naming
|
||||
conventions of the target platform.
|
||||
|
||||
All positional and keyword arguments are the same as for [shared_module],
|
||||
excluding `name_suffix` and `name_prefix`, and with the addition of the following:
|
||||
|
||||
- `subdir`: By default, meson will install the extension module in
|
||||
the relevant top-level location for the python installation, eg
|
||||
`/usr/lib/site-packages`. When subdir is passed to this method,
|
||||
it will be appended to that location. This keyword argument is
|
||||
mutually exclusive with `install_dir`
|
||||
|
||||
`extension_module` does not add any dependencies to the library so user may
|
||||
need to add `dependencies : py_installation.dependency()`, see [][`dependency()`].
|
||||
|
||||
**Returns**: a [buildtarget object]
|
||||
|
||||
#### `dependency()`
|
||||
|
||||
``` meson
|
||||
python_dependency py_installation.dependency(...)
|
||||
```
|
||||
|
||||
This method accepts the same arguments as the standard [dependency] function.
|
||||
|
||||
**Returns**: a [python dependency][`python_dependency` object]
|
||||
|
||||
#### `install_sources()`
|
||||
|
||||
``` meson
|
||||
void py_installation.install_sources(list_of_files, ...)
|
||||
```
|
||||
|
||||
Install actual python sources (`.py`).
|
||||
|
||||
All positional and keyword arguments are the same as for [install_data],
|
||||
with the addition of the following:
|
||||
|
||||
- `pure`: On some platforms, architecture independent files are expected
|
||||
to be placed in a separate directory. However, if the python sources
|
||||
should be installed alongside an extension module built with this
|
||||
module, this keyword argument can be used to override that behaviour.
|
||||
Defaults to `true`
|
||||
|
||||
- `subdir`: See documentation for the argument of the same name to
|
||||
[][`extension_module()`]
|
||||
|
||||
#### `get_install_dir()`
|
||||
|
||||
``` meson
|
||||
string py_installation.get_install_dir(...)
|
||||
```
|
||||
|
||||
Retrieve the directory [][`install_sources()`] will install to.
|
||||
|
||||
It can be useful in cases where `install_sources` cannot be used directly,
|
||||
for example when using [configure_file].
|
||||
|
||||
This function accepts no arguments, its keyword arguments are the same
|
||||
as [][`install_sources()`].
|
||||
|
||||
**Returns**: A string
|
||||
|
||||
#### `language_version()`
|
||||
|
||||
``` meson
|
||||
string py_installation.language_version()
|
||||
```
|
||||
|
||||
Get the major.minor python version, eg `2.7`.
|
||||
|
||||
The version is obtained through the `sysconfig` module.
|
||||
|
||||
This function expects no arguments or keyword arguments.
|
||||
|
||||
**Returns**: A string
|
||||
|
||||
#### `get_path()`
|
||||
|
||||
``` meson
|
||||
string py_installation.get_path(path_name)
|
||||
```
|
||||
|
||||
Get a path as defined by the `sysconfig` module.
|
||||
|
||||
For example:
|
||||
|
||||
``` meson
|
||||
purelib = py_installation.get_path('purelib')
|
||||
```
|
||||
|
||||
This function accepts a single argument, `path_name`, which is expected to
|
||||
be a non-empty string.
|
||||
|
||||
**Returns**: A string
|
||||
|
||||
#### `get_variable()`
|
||||
|
||||
``` meson
|
||||
string py_installation.get_variable(variable_name)
|
||||
```
|
||||
|
||||
Get a variable as defined by the `sysconfig` module.
|
||||
|
||||
For example:
|
||||
|
||||
``` meson
|
||||
py_bindir = py_installation.get_variable('BINDIR')
|
||||
```
|
||||
|
||||
This function accepts a single argument, `variable_name`, which is expected to
|
||||
be a non-empty string.
|
||||
|
||||
**Returns**: A string
|
||||
|
||||
## `python_dependency` object
|
||||
|
||||
This [dependency object] subclass will try various methods to obtain the
|
||||
compiler and linker arguments, starting with pkg-config then potentially
|
||||
using information obtained from python's `sysconfig` module.
|
||||
|
||||
It exposes the same methods as its parent class.
|
||||
|
||||
[find_program]: Reference-manual.md#find_program
|
||||
[shared_module]: Reference-manual.md#shared_module
|
||||
[external program]: Reference-manual.md#external-program-object
|
||||
[dependency]: Reference-manual.md#dependency
|
||||
[install_data]: Reference-manual.md#install-data
|
||||
[configure_file]: Reference-manual.md#configure-file
|
||||
[dependency object]: Reference-manual.md#dependency-object
|
||||
[buildtarget object]: Reference-manual.md#build-target-object
|
|
@ -0,0 +1,6 @@
|
|||
# Generic python module
|
||||
|
||||
This is a revamped and generic (python 2 and 3) version of the python3
|
||||
module. With this new interface, projects can now fully specify the version
|
||||
of python they want to build against / install sources to, and can do so
|
||||
against multiple major or minor versions in parallel.
|
|
@ -32,6 +32,7 @@ index.md
|
|||
i18n-module.md
|
||||
Icestorm-module.md
|
||||
Pkgconfig-module.md
|
||||
Python-module.md
|
||||
Python-3-module.md
|
||||
Qt4-module.md
|
||||
Qt5-module.md
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
@for tup in (("Gnome-module.html","GNOME"), \
|
||||
("i18n-module.html","i18n"), \
|
||||
("Pkgconfig-module.html","Pkgconfig"), \
|
||||
("Python-module.html","Python"), \
|
||||
("Python-3-module.html","Python 3"), \
|
||||
("Qt4-module.html","Qt4"), \
|
||||
("Qt5-module.html","Qt5"), \
|
||||
|
|
Loading…
Reference in New Issue