mirror of
https://gitlab.freedesktop.org/pipewire/media-session.git
synced 2025-12-20 05:20:04 +01:00
87 lines
2.3 KiB
Markdown
87 lines
2.3 KiB
Markdown
## Building
|
|
|
|
PipeWire Media Session uses a build tool called *Meson* as a basis for its build
|
|
process. It's a tool with some resemblance to Autotools and CMake. Meson
|
|
again generates build files for a lower level build tool called *Ninja*,
|
|
working in about the same level of abstraction as more familiar GNU Make
|
|
does.
|
|
|
|
Meson uses a user-specified build directory and all files produced by Meson
|
|
are in that build directory. This build directory will be called `builddir`
|
|
in this document.
|
|
|
|
Generate the build files for Ninja:
|
|
|
|
```
|
|
$ meson setup builddir
|
|
```
|
|
|
|
For distribution-specific build dependencies, please check our
|
|
[CI pipeline](https://gitlab.freedesktop.org/pipewire/media-session/-/blob/master/.gitlab-ci.yml)
|
|
(search for `FDO_DISTRIBUTION_PACKAGES`). Note that some dependencies are
|
|
optional and depend on options passed to meson.
|
|
|
|
Once this is done, the next step is to review the build options:
|
|
|
|
```
|
|
$ meson configure builddir
|
|
```
|
|
|
|
Define the installation prefix:
|
|
|
|
```
|
|
$ meson configure builddir -Dprefix=/usr # Default: /usr/local
|
|
```
|
|
|
|
PipeWire Media Session specific build options are listed in the "Project options"
|
|
section. They are defined in `meson_options.txt`.
|
|
|
|
Finally, invoke the build:
|
|
|
|
```
|
|
$ ninja -C builddir
|
|
```
|
|
|
|
Just to avoid any confusion: `autogen.sh` is a script invoked by *Jhbuild*,
|
|
which orchestrates multi-component builds.
|
|
|
|
## Running
|
|
|
|
If you want to run PipeWire Media Session without installing it on your system, there is a
|
|
script that you can run. This puts you in an environment in which PipeWire Media Session can
|
|
be run from the build directory. You can get into this environment with:
|
|
|
|
```
|
|
$ ./media-session-uninstalled.sh
|
|
$ pipewire-media-session
|
|
```
|
|
|
|
This will use the default config file to configure and start PipeWire Media
|
|
Session.
|
|
|
|
You can also enable more debugging with the PIPEWIRE_DEBUG environment
|
|
variable like so:
|
|
|
|
```
|
|
cd builddir/
|
|
PIPEWIRE_DEBUG="D" make run
|
|
```
|
|
|
|
You might have to stop the pipewire-media-session service that might have been
|
|
started already, with:
|
|
|
|
```
|
|
systemctl --user stop pipewire-media-session.service
|
|
```
|
|
|
|
## Installing
|
|
|
|
Inside `builddir`, run:
|
|
|
|
```
|
|
sudo meson install
|
|
```
|
|
|
|
to install everything onto the system into the specified prefix.
|
|
Some additional steps will have to be performed to integrate
|
|
with the distribution as shown below.
|