docs: update installing-wireplumber page

This commit is contained in:
George Kiagiadakis 2021-05-25 15:01:43 +03:00
parent 7970c9cc69
commit 87403eb1d4

View File

@ -9,16 +9,23 @@ Dependencies
In order to compile WirePlumber you will need:
* GLib >= 2.58
* PipeWire 0.3 (>= 0.3.5 highly recommended)
* PipeWire 0.3 (>= 0.3.26)
* Lua 5.3
For building gobject-introspection data, you will also need 'g-ir-scanner',
which is usually shipped together with the gobject-introspection development
files.
Lua is optional in the sense that if it is not found in the system, a bundled
version will be built and linked statically with WirePlumber. This is controlled
by the **system-lua** meson option.
For building documentation, you will also need `doxygen <https://www.doxygen.nl/>`_,
`Sphinx <https://pypi.org/project/Sphinx/>`_ and `breathe <https://pypi.org/project/breathe/>`_.
Most distributions do not ship these tools, but you can install them easily using python's
**pip** package manager.
For building gobject-introspection data, you will also need
`doxygen <https://www.doxygen.nl/>`_ and **g-ir-scanner**.
The latter is usually shipped together with the gobject-introspection
development files.
For building documentation, you will also need
`Sphinx <https://pypi.org/project/Sphinx/>`_,
`sphinx-rtd-theme <https://github.com/readthedocs/sphinx_rtd_theme>`_ and
`breathe <https://pypi.org/project/breathe/>`_.
It is recommended to install those using python's **pip** package manager.
Compilation
-----------
@ -28,32 +35,87 @@ WirePlumber uses the `meson build system <https://mesonbuild.com/>`_
To configure the project, you need to first run `meson`.
The basic syntax is shown below:
*meson [build directory] [source directory] [--prefix=/path] [...options...]*
.. code:: bash
meson [--prefix=/path] [...options...] [build directory] [source directory]
Assuming you want to build in a directory called 'build' inside the source
tree, you can run:
*$ meson build . --prefix=/usr*
*$ ninja -C build*
.. code:: bash
$ meson setup --prefix=/usr build
$ meson compile -C build
Additional options
------------------
* **-Dintrospection=[enabled|disabled|auto]**: Force enable or force disable
building gobject-introspection data. The default value is **auto**, which means
that g-i will be built if **g-ir-scanner** is found and skipped otherwise.
* **-Ddocs=[enabled|disabled|auto]**: Force enable or force disable building
documentation. The default value is **auto**, which means that documentation
will be built if **doxygen**, **sphinx** and **breathe** tools are found and skipped otherwise.
Note that building the documentation also requires gobject-introspection data to be built.
.. option:: -Dintrospection=[enabled|disabled|auto]
Force enable or force disable building gobject-introspection data.
The default value is **auto**, which means that g-i will be built
if **doxygen** and **g-ir-scanner** are found and skipped otherwise.
.. option:: -Ddocs=[enabled|disabled|auto]
Force enable or force disable building documentation.
The default value is **auto**, which means that documentation will be built
if **doxygen**, **sphinx** and **breathe** are found and skipped otherwise.
.. option:: -Dsystem-lua=[enabled|disabled|auto]
Force using lua from the system instead of the bundled one.
The default value is **auto**, which means that system lua will be used
if it is found, otherwise the bundled static version will be built silently.
Use **disabled** to force using the bundled lua.
.. option:: -Dsystemd=[enabled|disabled|auto]
Enables installing systemd units. The default is **auto**
**enabled** and **auto** currently mean the same thing.
.. option:: -Dsystemd-system-service=[true|false]
Enables installing systemd system service file. The default is **false**
.. option:: -Dsystemd-user-service=[true|false]
Enables installing systemd user service file. The default is **true**
.. option:: -Dsystemd-system-unit-dir=[path]
Directory for system systemd units.
.. option:: -Dsystemd-user-unit-dir=[path]
Directory for user systemd units.
.. option:: -Dwpipc=[enabled|disabled|auto]
Build the wpipc library and module-ipc. The default is **disabled**
**enabled** and **auto** currently mean the same thing.
wpipc is small library to send commands directly to WirePlumber; it is
only useful in specific embedded systems and not recommended for generic use
(use the PipeWire protocol instead)
Installation
------------
To install, simply run the **install** target with ninja:
*$ ninja -C build install*
.. code:: bash
$ ninja -C build install
To revert the installation, there is also an **uninstall** target:
*$ ninja -C build uninstall*
.. code:: bash
$ ninja -C build uninstall