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 4ff544a972 Add pkgconfig file for all of LV2. 11 years ago
doc Simply spec style a bit. 11 years ago
lv2/ Move people information in to a common place. 11 years ago
lv2compatgen Update Python tool headers. 11 years ago
lv2specgen Simply spec style a bit. 11 years ago
plugins Remove atom:MessagePort and atom:ValuePort. 11 years ago
README Update README, remove INSTALL. 11 years ago
doxy-style.css Put atom size first. 11 years ago Fix pkg-config include path. 11 years ago
ext.wscript Remove --experimental option and just always build everything. 11 years ago Add pkgconfig file for all of LV2. 11 years ago
waf Move NEWS generation stuff up into autowaf. 11 years ago
wscript Add pkgconfig file for all of LV2. 11 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 (a C header and/or a schema in Turtle),
documentation generation tools, and example plugins.

Building and installation requires only Python 2.6 and, optionally, Doxygen.


A typical build looks something like this:

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

or, for packaging:

DESTDIR=/foo/lv2 ./waf install

For help on the various options available, run:

./waf --help

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

./waf configure --lv2-dir /foo/lib/lv2

Similarly, --lv2-user will install to the user LV2 directory (e.g. ~/.lv2).


Specification bundles are both a build 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 must remain self-contained. This is a
requirement, not a suggestion, and it supercedes any rules your distribution
may have which were likely designed for libraries (note LV2 specifications are
just text, not libraries). You are free to link or copy things anywhere, but
under no circumstances should an incomplete part of a bundle be installed.

Other than that, things may be split up in any way. In particular it is a good
idea to split specifications, tools, and plugins into separate packages.

Header Installation

The install stage installs symbolic links to headers in bundles. This is to
support universal C includes that do not change from system to system. For
example, the URID extension's header can always be included like so:

#include "lv2/"

Note that some specification headers themselves have such include lines, which
must not be modified. The details of how this is achieved are unimportant and
may be tailored to particular systems. The requirement is simply that this
style of include must work for any header in a specification.

If you are having problems with symbolic links for whatever reason, configure
with the --copy-headers option, which will make copies instead.


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

./waf configure --docs