path: root/plugins/eg-amp.lv2/manifest.ttl.in
diff options
authorDavid Robillard <d@drobilla.net>2014-08-06 01:26:06 +0000
committerDavid Robillard <d@drobilla.net>2014-08-06 01:26:06 +0000
commit74d7751c37d2c991d244c1c23e1a4cd24451ac41 (patch)
treeaf301c27cbf585ae71f95e9e14e2380f062e6739 /plugins/eg-amp.lv2/manifest.ttl.in
parentf181b31c11d6a9317695c68c6cce30319e7e2faa (diff)
Order book chapters in build script rather than by bundle name.
Diffstat (limited to 'plugins/eg-amp.lv2/manifest.ttl.in')
1 files changed, 101 insertions, 0 deletions
diff --git a/plugins/eg-amp.lv2/manifest.ttl.in b/plugins/eg-amp.lv2/manifest.ttl.in
new file mode 100644
index 0000000..da8a2c4
--- /dev/null
+++ b/plugins/eg-amp.lv2/manifest.ttl.in
@@ -0,0 +1,101 @@
+# ==== Bundles ====
+# LV2 plugins are installed in ``bundles'', a directory with a particular
+# format. Inside the bundle, the entry point is a file called `manifest.ttl`.
+# The manifest lists the plugins (or other resources) that are in this bundle,
+# and the files that contain further information.
+# Hosts typically read the `manifest.ttl` of every bundle when starting up to
+# discover what LV2 plugins and other resources are present. Accordingly,
+# manifest files should be as small as possible for performance reasons.
+# ==== Namespace Prefixes ====
+# Turtle files contain many URIs. To make this more readable, prefixes can be
+# defined. For example, with the `lv2:` prefix below, instead of
+# <http://lv2plug.in/ns/lv2core#Plugin> the shorter form `lv2:Plugin` can be
+# used. This is just a shorthand for URIs within one file, the prefixes are
+# not significant otherwise.
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+# ==== A Plugin Entry ====
+ a lv2:Plugin ;
+ lv2:binary <amp@LIB_EXT@> ;
+ rdfs:seeAlso <amp.ttl> .
+# The token `@LIB_EXT@` above is replaced by the build system with the
+# appropriate extension for the current platform (e.g. .so, .dylib, .dll).
+# This file is called called `manifest.ttl.in` rather than `manifest.ttl`
+# to indicate that it is not the final file to be installed.
+# This is not necessary, but is a good idea for portable plugins.
+# For reability, the following text will assume `.so` is the extension used.
+# In short, this declares that the resource with URI
+# `http://lv2plug.in/plugins/eg-amp` is an LV2 plugin, with executable code in
+# the file `amp.so` and a full description in `amp.ttl`. These paths are
+# relative to the bundle directory.
+# There are 3 statements in this description:
+# [options="header"]
+# |================================================================
+# | Subject | Predicate | Object
+# | <http://lv2plug.in/plugins/eg-amp> | a | lv2:Plugin
+# | <http://lv2plug.in/plugins/eg-amp> | lv2:binary | <amp.so>
+# | <http://lv2plug.in/plugins/eg-amp> | rdfs:seeAlso | <amp.ttl>
+# |================================================================
+# The semicolon is used to continue the previous subject; an equivalent
+# but more verbose syntax for the same data is:
+<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin .
+<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> .
+<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> .
+# (Since this data is equivalent, it is safe, if pointless, to list it twice)
+# The documentation for a URI can often be found by visiting that URI in a web
+# browser, e.g. the documentation for lv2:binary can be found at
+# <http://lv2plug.in/ns/lv2core#binary>. All standard LV2 classes and
+# properties are documented in this way, so if you encounter a URI in some data
+# which you do not understand, try this first.
+# The URI of a plugin does not need to be a resolvable web address, it just
+# serves as a global identifier. However, it is a good idea to use an actual
+# web address if possible for easy access documentation, downloads, and so on,
+# even if no documents are currently hosted there. There are compatibility
+# rules about when the URI of a plugin must be changed, see the
+# http://lv2plug.in/ns/lv2core[LV2 specification] for details. Note that this
+# does not require authors to control a top-level domain; for example, URIs in
+# project directories at shared hosting sites are fine. It is not required to
+# use HTTP URIs, but use of other schemes is strongly discouraged.
+# PORTION FOLLOWING ``http://'' IS NOT A DOMAIN NAME. If you need an example
+# URI, the domain http://example.org/ is reserved for this purpose.
+# A detailed explanation of each statement follows.
+<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin .
+# The `a`, as in ``is a'', is a Turtle shortcut for `rdf:type`.
+# `lv2:Plugin` expands to <http://lv2plug.in/ns/lv2core#Plugin> (using the
+# `lv2:` prefix above) which is the type of all LV2 plugins.
+# This statement means ``<http://lv2plug.in/plugins/eg-amp> is an LV2 plugin''.
+<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp@LIB_EXT@> .
+# This says ```eg-amp` has executable code in the file `amp.so`''.
+# Relative URIs in manifest files are relative to the bundle directory, so this
+# refers to the file amp.so in the same directory as this manifest.ttl file.
+<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> .
+# This says ``there is more information about `eg-amp` in the file `amp.ttl`''.
+# The host will look at all such files when it needs to actually use or
+# investigate the plugin.