Skip to content

Latest commit

 

History

History
215 lines (146 loc) · 5.57 KB

INSTALL.rst

File metadata and controls

215 lines (146 loc) · 5.57 KB

Installation Instructions

Prerequisites

Build Tools

You will need the GNU toolchain, a C/C++ compiler and the following

meson (Apache-2.0)
Build system
guile (GPLv3+)
Used in various build scripts
sassc (Expat)
CSS compilation

If your meson version is too old, you can either install meson from pip or run meson.py directly from meson's source code.

Dependencies

The following dependencies must be installed before attempting to build or run Zrythm.

Required

breeze-icons (LGPLv3+)
Various icons
carla (GPLv2+)
Support for various plugin formats
fftw (GPLv2+)
Threaded fftw for plugins
gtk4 (LGPLv2.1+)
GUI toolkit
gtksourceview (LGPLv2.1+)
Source code editor widget
json-glib (LGPLv2.1+)
JSON manipulation
libadwaita (LGPLv2.1+)
Additional widgets
libaudec (AGPLv3+)
Audio file loading
libbacktrace (3-Clause BSD)
Backtraces
libcurl (X11)
Network connections
libcyaml (ISC)
Serialization into YAML
libpanel (LGPLv3+)
Dock and panel widgets

Note: if you want detach support use our fork (zrythm_detach branch).

lilv (ISC)
LV2 host support
pcre2 (3-Clause BSD)
Regex
reproc (Expat)
Process launching
rubberband (GPLv2+)
Time-stretching and pitch-shifting
vamp-plugin-sdk (X11)
Audio analysis
xxhash (2-Clause BSD)
Hashing
zix (ISC)
Portability wrappers and data structures
zstd (3-Clause BSD)
Compression

Recommended

boost (Boost)
C++ utilities required for bundled plugins
jack (LGPLv2.1+)
Low latency audio/MIDI backend
lsp-dsp-lib (LGPLv3+)
SIMD-optimized signal processing
libguile (GPLv3+)
Scripting support

Optional

graphviz (EPLv1.0)
Process graph export
rtaudio (Expat)
Various audio backends
rtmidi (Expat)
Various MIDI backends
SDL2 (zlib)
Audio backend

Dependency package names for various distros can be found here and here

Configuration

Configure the build directory, optionally passing options:

meson setup build -Doption_name=value

To see all available options, type the following after the build directory is initialized, or look inside meson_options.txt. Built-in meson options can be found here:

meson configure build

To change an option after configuration, use:

meson configure build -Doption_name=value

To change environment variables (such as CC and CXX) while keeping the current configuration, use:

MY_ENV_VARIABLE=myvalue meson build --wipe

To start from scratch, remove the build directory:

rm -rf build

Optimization

The default build type is debugoptmized, which is equivalent to -Ddebug=true -Doptimization=2 (-O2 -g). This works well in most cases. For extremely optimized builds, we suggest building with the following options:

-Ddebug=true -Doptimization=3 -Dextra_optimizations=true -Dnative_build=true

We suggest always keeping -Ddebug=true to assist with meaningful stack traces and bug reports.

Compilation

Compile after configuring the build directory:

meson compile -C build

To clean the build directory while keeping the current configuration, use:

meson compile --clean -C build

Installation

Once the program is built, it will need to be installed the first time before it can run (to install the GSettings among other things):

meson install -C build

If you don't want to install anything permanent on your system, you can install it somewhere temporary by configuring with --prefix=/tmp/zrythm for example, and then you can run it with /tmp/zrythm/bin/zrythm_launch.

Running

When running Zrythm from the command line, it is recommended to use zrythm_launch instead of running the zrythm binary directly. This takes care of using the correct GSettings schemas and other resources in the installed prefix.

For debugging and other developer tools, see HACKING.md.