LV2 subproject with meson
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
David Robillard 6b4cee5bc2 Fix CI configuration 3 years ago
doc Fix specification directory index 3 years ago
lv2 Modernize compiler checks in attributes.h 3 years ago
lv2specgen Fix links in online documentation index 3 years ago
plugins Fix incorrect printf format specifiers 3 years ago
schemas.lv2 Fix xsd.ttl style 4 years ago
util Rename spec metadata files to name.meta.ttl 3 years ago
waflib@8b67c69300 Be explicit about warnings 3 years ago
.gitignore Ignore top-level generated NEWS file 3 years ago
.gitlab-ci.yml Fix CI configuration 3 years ago
.gitmodules Fix autowaf submodule reference 4 years ago
COPYING Remove individual extension pkg-config files and build scripts. 11 years ago Install standard headers to simpler include paths 5 years ago Add pkgconfig file for all of LV2. 11 years ago
waf Update waf wrapper to print submodule help message 3 years ago
wscript Be explicit about warnings 3 years ago


LV2 is a plugin standard for audio systems. It defines a minimal yet extensible C API for plugin code and a format for plugin "bundles". See for more information.

This package contains specifications (C headers and Turtle files), documentation generation tools, and example plugins.

Building and installation requires only Python 2.6. Building the documentation requires Doxygen.


A typical build looks something like this:

./waf configure --prefix=/foo
sudo ./waf install

or, for packaging:

DESTDIR=/home/packager/lv2root ./waf install

For help on the other available options, run:

./waf --help

The bundle installation directory can be set with the --lv2dir option, e.g.:

./waf configure --lv2dir=/foo/lib/lv2

Configuring with --lv2-user will install bundles to the user-local location.


Specification bundles are both a build-time and run-time dependency of programs that use LV2. Programs expect their data to be available somewhere in LV2_PATH.

See for details on the standard installation paths.

Do not split up LV2 bundles, they are self-contained and must remain whole. Other than that, things may be split to suit distribution needs. For example, separate packages for specifications, tools, and plugins, may be good idea.

Header Installation

By default symbolic links to headers in bundles are installed to INCLUDEDIR. If symbolic links are a problem, configure with --copy-headers and copies will be installed instead.

Headers are installed in two paths, the universal URI-based style:

#include "lv2/"

and the newer simple core style:

#include "lv2/urid/urid.h"

Projects are encouraged to migrate to the latter style, though note that this style of include path may only be used by official LV2 specifications.


Configuring with the --docs option will build the documentation for all the included specifications if Doxygen is available. For example:

./waf configure --docs

Specification documentation is also availabe online at