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.
To configure and build, use:
meson build meson compile -C build
To pass options, use the following syntax:
meson 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 clean the build directory while keeping the current configuration, use:
meson compile --clean -C build
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
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:
meson build -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.
- 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
- libcyaml (ISC)
- Serialization into YAML
- lilv (ISC)
- LV2 host support
- pcre2 (3-Clause BSD)
- Regex
- reproc (Expat)
- Process launching
- vamp-plugin-sdk (X11)
- Audio analysis
- xxhash (2-Clause BSD)
- Hashing
- zstd (3-Clause BSD)
- Compression
- jack (LGPLv2.1+)
- Low latency audio/MIDI backend
- lsp-dsp-lib (LGPLv3+)
- SIMD-optimized signal processing
- libguile (GPLv3+)
- Scripting support
- 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
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
meson build --prefix=/tmp/zrythm
for example, and
then you can run it with
/tmp/zrythm/bin/zrythm_launch
.
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.