4 **jack_mixer** uses [meson] and optionally a Python [PEP-517]-compliant build
5 system for building, installation and packaging.
12 * GCC (version 9.x or 10.x recommended, package `build-essential` on Debian/Ubuntu)
15 * Python headers (`python3-dev`)
16 * [JACK] headers (`libjack-jackd2-dev` (recommended) or `libjack-dev`)
17 * glib2 headers (`libglib-2.0-dev`)
18 * [Cython] (optional, required if building from a Git checkout)
22 * Python (at least 3.6)
25 * `libjack` and JACK server (`jackd2` (recommended) or `jackd`)
27 Optional run-time dependencies:
29 * [pyxdg] - For saving your preferences (strongly recommended)
30 * [NSM] - For NSM session management support
35 Building with meson always happens in a special build directory. Set up the
36 build in the `builddir` sub-directory and configure the build with:
39 meson setup builddir --prefix=/usr --buildtype=release
42 Then build the software with:
45 meson compile -C builddir
52 [sudo] meson install -C builddir
55 **Note for packagers**: to install all files under a destination directory
56 other than the filesystem root, set the `DESTDIR` environment variable for
62 DESTDIR="/tmp/jack_mixer-install-root" meson install -C builddir
68 There are several project-specific [options] to configure the build and the
69 resulting installation. To see all supported options (including [standard
70 meson options]) and their possible values run:
76 If you have already set up the build directory, you can append its name
77 to see the current values of all options for this build configuration.
79 To change an option, pass the build directory and `-Doption=value` to
80 `meson setup` or `meson configure`. For example:
83 meson configure builddir -Dgui=disabled
87 ## Building a Python wheel (for maintainers)
89 1. Make sure you have Python 3, `git` and [pip] installed:
90 2. Run the following command to build a binary wheel:
96 This will automatically download the required build tools, e.g. Cython, meson,
97 ninja, the Python `wheel` package etc. (see the [pyproject.toml] file for
98 details), build the software with meson and then package it into a wheel, which
99 will be placed in the project's root directory.
101 The wheel can be installed with `pip install jack_mixer-*.whl`.
104 [Cython]: https://cython.org/
105 [JACK]: https://jackaudio.org/
106 [meson]: https://mesonbuild.com/
107 [ninja]: https://ninja-build.org/
108 [NSM]: https://github.com/linuxaudio/new-session-manager
109 [options]: https://mesonbuild.com/Build-options.html
110 [pip]: https://pypi.org/project/pip/
111 [pycairo]: https://pypi.org/project/pycairo/
112 [PyGObject]: https://pypi.org/project/PyGObject/
113 [pyxdg]: https://freedesktop.org/wiki/Software/pyxdg/
114 [PEP-517]: https://www.python.org/dev/peps/pep-0517/
115 [pyproject.toml]: ./pyproject.toml
116 [standard meson options]: https://mesonbuild.com/Builtin-options.html