Skip to content

Build and Installation Instructions with Meson

Meson is a modern and fast build system with a lot of features. You can find its documentation at mesonbuild.com.

Install Dependencies

dnf install meson qt5-qtbase-devel qt5-qtquickcontrols2-devel qt5-qtsvg-devel qt5-qtnetworkauth-devel qt5-qtwebsockets-devel rtaudio-devel "pkgconfig(jack)" help2man python3-jinja2 python3-pyyaml
apt install meson build-essential qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qttools5-dev libqt5svg5-dev libqt5networkauth5-dev libqt5websockets5-dev qtdeclarative5-dev qtquickcontrols2-5-dev libjack-jackd2-dev git help2man
brew install meson qt5 rtaudio help2man

You also need to install Jack, unless you want to disable jack support (-Djack=disabled). On macOS Jack is often installed using an installer from the Jack2 release page. You can also install it using homebrew (brew install jack), but you should not use both installation methods simultaneously.

Meson might not find qt when installed with brew. But brew tells you to set PKG_CONFIG_PATH to a directory where it finds qt's pkgconfig file. This directory has to be set as additional pkgconfig path in meson:

meson --buildtype release --pkg-config-path `brew --prefix qt5`/lib/pkgconfig build_release

Configuration

If you are in a build directory, meson configure shows you all available options. Current project options are jack, nogui, rtaudio and wair. Meson shows you also the options of subprojects like RtAudio.

Build

Meson builds in a separate directory. It doesn't touch anything of your project. This way you can have separate debug and release build directories for example.

Prepare your build directory:

meson builddir                                  # defaults to debug build

## Additional build directories
meson --buildtype release build_release         # release build
meson --buildtype debugoptimized build_debug    # optimized debug build

Meson can download and build RtAudio as a subproject, if RtAudio is not available on your system. By default it only checks the dependency on your system. If you want to use the subproject you have to explicitly enable rtaudio.

cd builddir
meson configure -Drtaudio=enabled

If help2man is found, Meson will create a manpage from jacktrip --help.

Now build with:

cd builddir
ninja

Install with:

sudo ninja install