aboutsummaryrefslogtreecommitdiffstats
path: root/lv2
diff options
context:
space:
mode:
Diffstat (limited to 'lv2')
-rw-r--r--lv2/atom/meson.build61
-rw-r--r--lv2/buf-size/meson.build40
-rw-r--r--lv2/core/meson.build44
-rw-r--r--lv2/core/meta.ttl2
-rw-r--r--lv2/data-access/meson.build40
-rw-r--r--lv2/dynmanifest/meson.build40
-rw-r--r--lv2/event/meson.build41
-rw-r--r--lv2/instance-access/meson.build40
-rw-r--r--lv2/log/meson.build41
-rw-r--r--lv2/meson.build52
-rw-r--r--lv2/midi/meson.build40
-rw-r--r--lv2/morph/meson.build40
-rw-r--r--lv2/options/meson.build40
-rw-r--r--lv2/parameters/meson.build40
-rw-r--r--lv2/patch/meson.build40
-rw-r--r--lv2/port-groups/meson.build40
-rw-r--r--lv2/port-props/meson.build40
-rw-r--r--lv2/presets/meson.build40
-rw-r--r--lv2/resize-port/meson.build40
-rw-r--r--lv2/state/meson.build40
-rw-r--r--lv2/time/meson.build40
-rw-r--r--lv2/ui/meson.build40
-rw-r--r--lv2/units/meson.build40
-rw-r--r--lv2/uri-map/meson.build40
-rw-r--r--lv2/urid/meson.build40
-rw-r--r--lv2/worker/meson.build40
26 files changed, 1041 insertions, 0 deletions
diff --git a/lv2/atom/meson.build b/lv2/atom/meson.build
new file mode 100644
index 0000000..3dc43b3
--- /dev/null
+++ b/lv2/atom/meson.build
@@ -0,0 +1,61 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'atom'
+path = 'ns' / 'ext' / name
+
+atom_data = files(
+ 'atom.meta.ttl',
+ 'atom.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'atom.h',
+ 'forge.h',
+ 'util.h',
+)
+
+tests = [
+ 'atom-test',
+ 'forge-overflow-test',
+]
+
+# Install specification bundle
+install_data(atom_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build and run tests
+if not get_option('tests').disabled()
+ foreach test : tests
+ test(test,
+ executable(
+ test,
+ files('@0@.c'.format(test)),
+ c_args: c_suppressions,
+ include_directories: include_directories('../../'),
+ ),
+ suite: 'unit')
+ endforeach
+endif
+
+# Build documentation
+if build_docs
+ custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('atom.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/buf-size/meson.build b/lv2/buf-size/meson.build
new file mode 100644
index 0000000..c0b3a5e
--- /dev/null
+++ b/lv2/buf-size/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'buf-size'
+path = 'ns' / 'ext' / name
+
+buf_size_data = files(
+ 'buf-size.meta.ttl',
+ 'buf-size.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'buf-size.h',
+)
+
+# Install extension bundle
+install_data(buf_size_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_buf_size_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('buf-size.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/core/meson.build b/lv2/core/meson.build
new file mode 100644
index 0000000..a629d0a
--- /dev/null
+++ b/lv2/core/meson.build
@@ -0,0 +1,44 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'core'
+path = 'ns' / 'lv2core'
+
+core_data = files(
+ 'lv2core.meta.ttl',
+ 'lv2core.ttl',
+ 'manifest.ttl',
+ 'meta.ttl',
+ 'people.ttl',
+)
+
+headers = files(
+ 'attributes.h',
+ 'lv2.h',
+ 'lv2_util.h',
+)
+
+# Install specification bundle
+install_data(core_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / 'ns' / 'lv2core')
+endif
+
+# Build documentation
+if build_docs
+ lv2_core_docs = custom_target(
+ 'lv2core.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../html',
+ '--style-uri=../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('lv2core.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns',
+ output: 'lv2core.html',
+ )
+endif
diff --git a/lv2/core/meta.ttl b/lv2/core/meta.ttl
index d85f539..34cfa4f 100644
--- a/lv2/core/meta.ttl
+++ b/lv2/core/meta.ttl
@@ -46,6 +46,8 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH R
rdfs:label "Remove archaic properties from foaf vocabulary."
] , [
rdfs:label "Replace canonical dcs ontology with a minimal version for LV2."
+ ] , [
+ rdfs:label "Switch to Meson build system."
]
]
] , [
diff --git a/lv2/data-access/meson.build b/lv2/data-access/meson.build
new file mode 100644
index 0000000..05b086b
--- /dev/null
+++ b/lv2/data-access/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'data-access'
+path = 'ns' / 'ext' / 'data-access'
+
+data_access_data = files(
+ 'data-access.meta.ttl',
+ 'data-access.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'data-access.h',
+)
+
+# Install specification bundle
+install_data(data_access_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_data_access_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('data-access.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/dynmanifest/meson.build b/lv2/dynmanifest/meson.build
new file mode 100644
index 0000000..ba78972
--- /dev/null
+++ b/lv2/dynmanifest/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'dynmanifest'
+path = 'ns' / 'ext' / 'dynmanifest'
+
+dynmanifest_data = files(
+ 'dynmanifest.meta.ttl',
+ 'dynmanifest.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'dynmanifest.h',
+)
+
+# Install specification bundle
+install_data(dynmanifest_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_dynmanifest_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('dynmanifest.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/event/meson.build b/lv2/event/meson.build
new file mode 100644
index 0000000..020acc8
--- /dev/null
+++ b/lv2/event/meson.build
@@ -0,0 +1,41 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'event'
+path = 'ns' / 'ext' / 'event'
+
+event_data = files(
+ 'event.meta.ttl',
+ 'event.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'event-helpers.h',
+ 'event.h',
+)
+
+# Install specification bundle
+install_data(event_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_event_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('event.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/instance-access/meson.build b/lv2/instance-access/meson.build
new file mode 100644
index 0000000..70ff48e
--- /dev/null
+++ b/lv2/instance-access/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'instance-access'
+path = 'ns' / 'ext' / 'instance-access'
+
+instance_access_data = files(
+ 'instance-access.meta.ttl',
+ 'instance-access.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'instance-access.h',
+)
+
+# Install specification bundle
+install_data(instance_access_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_instance_access_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('instance-access.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/log/meson.build b/lv2/log/meson.build
new file mode 100644
index 0000000..9b13db0
--- /dev/null
+++ b/lv2/log/meson.build
@@ -0,0 +1,41 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'log'
+path = 'ns' / 'ext' / 'log'
+
+log_data = files(
+ 'log.meta.ttl',
+ 'log.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'log.h',
+ 'logger.h',
+)
+
+# Install specification bundle
+install_data(log_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_log_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('log.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/meson.build b/lv2/meson.build
new file mode 100644
index 0000000..d8875eb
--- /dev/null
+++ b/lv2/meson.build
@@ -0,0 +1,52 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+dirs = [
+ 'atom',
+ 'buf-size',
+ 'core',
+ 'data-access',
+ 'dynmanifest',
+ 'event',
+ 'instance-access',
+ 'log',
+ 'midi',
+ 'morph',
+ 'options',
+ 'parameters',
+ 'patch',
+ 'port-groups',
+ 'port-props',
+ 'presets',
+ 'resize-port',
+ 'state',
+ 'time',
+ 'ui',
+ 'units',
+ 'uri-map',
+ 'urid',
+ 'worker',
+]
+
+foreach dir : dirs
+ subdir(dir)
+endforeach
+
+if not get_option('tests').disabled()
+ check_python = pymod.find_installation('python3',
+ modules: ['rdflib'],
+ required: get_option('tests'))
+
+ if check_python.found()
+ lv2_check_specification = files(
+ lv2_source_root / 'scripts' / 'lv2_check_specification.py'
+ )
+
+ foreach dir : dirs
+ test(dir,
+ lv2_check_specification,
+ args: files(dir / 'manifest.ttl'),
+ suite: ['spec'])
+ endforeach
+ endif
+endif
diff --git a/lv2/midi/meson.build b/lv2/midi/meson.build
new file mode 100644
index 0000000..7907dfa
--- /dev/null
+++ b/lv2/midi/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'midi'
+path = 'ns' / 'ext' / 'midi'
+
+midi_data = files(
+ 'midi.meta.ttl',
+ 'midi.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'midi.h',
+)
+
+# Install specification bundle
+install_data(midi_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_midi_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('midi.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/morph/meson.build b/lv2/morph/meson.build
new file mode 100644
index 0000000..0742c03
--- /dev/null
+++ b/lv2/morph/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'morph'
+path = 'ns' / 'ext' / 'morph'
+
+morph_data = files(
+ 'morph.meta.ttl',
+ 'morph.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'morph.h',
+)
+
+# Install specification bundle
+install_data(morph_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_morph_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('morph.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/options/meson.build b/lv2/options/meson.build
new file mode 100644
index 0000000..5644b87
--- /dev/null
+++ b/lv2/options/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'options'
+path = 'ns' / 'ext' / 'options'
+
+options_data = files(
+ 'options.meta.ttl',
+ 'options.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'options.h',
+)
+
+# Install specification bundle
+install_data(options_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_options_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('options.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/parameters/meson.build b/lv2/parameters/meson.build
new file mode 100644
index 0000000..ae50866
--- /dev/null
+++ b/lv2/parameters/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'parameters'
+path = 'ns' / 'ext' / 'parameters'
+
+parameters_data = files(
+ 'parameters.meta.ttl',
+ 'parameters.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'parameters.h',
+)
+
+# Install specification bundle
+install_data(parameters_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_parameters_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('parameters.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/patch/meson.build b/lv2/patch/meson.build
new file mode 100644
index 0000000..cb54fb6
--- /dev/null
+++ b/lv2/patch/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'patch'
+path = 'ns' / 'ext' / 'patch'
+
+patch_data = files(
+ 'patch.meta.ttl',
+ 'patch.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'patch.h',
+)
+
+# Install specification bundle
+install_data(patch_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_patch_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('patch.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/port-groups/meson.build b/lv2/port-groups/meson.build
new file mode 100644
index 0000000..816109f
--- /dev/null
+++ b/lv2/port-groups/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'port-groups'
+path = 'ns' / 'ext' / 'port-groups'
+
+port_groups_data = files(
+ 'port-groups.meta.ttl',
+ 'port-groups.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'port-groups.h',
+)
+
+# Install specification bundle
+install_data(port_groups_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_port_groups_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('port-groups.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/port-props/meson.build b/lv2/port-props/meson.build
new file mode 100644
index 0000000..900b637
--- /dev/null
+++ b/lv2/port-props/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'port-props'
+path = 'ns' / 'ext' / 'port-props'
+
+port_props_data = files(
+ 'port-props.meta.ttl',
+ 'port-props.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'port-props.h',
+)
+
+# Install specification bundle
+install_data(port_props_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_port_props_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('port-props.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/presets/meson.build b/lv2/presets/meson.build
new file mode 100644
index 0000000..a3f2feb
--- /dev/null
+++ b/lv2/presets/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'presets'
+path = 'ns' / 'ext' / 'presets'
+
+presets_data = files(
+ 'presets.meta.ttl',
+ 'presets.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'presets.h',
+)
+
+# Install specification bundle
+install_data(presets_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_presets_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('presets.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/resize-port/meson.build b/lv2/resize-port/meson.build
new file mode 100644
index 0000000..cd18a2c
--- /dev/null
+++ b/lv2/resize-port/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'resize-port'
+path = 'ns' / 'ext' / 'resize-port'
+
+resize_port_data = files(
+ 'resize-port.meta.ttl',
+ 'resize-port.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'resize-port.h',
+)
+
+# Install specification bundle
+install_data(resize_port_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_resize_port_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('resize-port.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/state/meson.build b/lv2/state/meson.build
new file mode 100644
index 0000000..7914797
--- /dev/null
+++ b/lv2/state/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'state'
+path = 'ns' / 'ext' / 'state'
+
+state_data = files(
+ 'state.meta.ttl',
+ 'state.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'state.h',
+)
+
+# Install specification bundle
+install_data(state_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_state_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('state.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/time/meson.build b/lv2/time/meson.build
new file mode 100644
index 0000000..5f47e89
--- /dev/null
+++ b/lv2/time/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'time'
+path = 'ns' / 'ext' / 'time'
+
+time_data = files(
+ 'time.meta.ttl',
+ 'time.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'time.h',
+)
+
+# Install specification bundle
+install_data(time_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_time_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('time.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/ui/meson.build b/lv2/ui/meson.build
new file mode 100644
index 0000000..3eb4223
--- /dev/null
+++ b/lv2/ui/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'ui'
+path = 'ns' / 'extensions' / 'ui'
+
+ui_data = files(
+ 'ui.meta.ttl',
+ 'ui.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'ui.h',
+)
+
+# Install specification bundle
+install_data(ui_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_ui_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('ui.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'extensions',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/units/meson.build b/lv2/units/meson.build
new file mode 100644
index 0000000..00d50dc
--- /dev/null
+++ b/lv2/units/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'units'
+path = 'ns' / 'extensions' / 'units'
+
+units_data = files(
+ 'units.meta.ttl',
+ 'units.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'units.h',
+)
+
+# Install specification bundle
+install_data(units_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_units_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('units.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'extensions',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/uri-map/meson.build b/lv2/uri-map/meson.build
new file mode 100644
index 0000000..1961645
--- /dev/null
+++ b/lv2/uri-map/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'uri-map'
+path = 'ns' / 'ext' / 'uri-map'
+
+uri_map_data = files(
+ 'uri-map.meta.ttl',
+ 'uri-map.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'uri-map.h',
+)
+
+# Install specification bundle
+install_data(uri_map_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_uri_map_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('uri-map.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/urid/meson.build b/lv2/urid/meson.build
new file mode 100644
index 0000000..38efe4b
--- /dev/null
+++ b/lv2/urid/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'urid'
+path = 'ns' / 'ext' / 'urid'
+
+urid_data = files(
+ 'urid.meta.ttl',
+ 'urid.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'urid.h',
+)
+
+# Install specification bundle
+install_data(urid_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_urid_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('urid.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif
diff --git a/lv2/worker/meson.build b/lv2/worker/meson.build
new file mode 100644
index 0000000..248c594
--- /dev/null
+++ b/lv2/worker/meson.build
@@ -0,0 +1,40 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: CC0-1.0 OR ISC
+
+name = 'worker'
+path = 'ns' / 'ext' / 'worker'
+
+worker_data = files(
+ 'worker.meta.ttl',
+ 'worker.ttl',
+ 'manifest.ttl',
+)
+
+headers = files(
+ 'worker.h',
+)
+
+# Install specification bundle
+install_data(worker_data, install_dir: lv2dir / name + '.lv2')
+install_headers(headers, subdir: 'lv2' / name)
+if get_option('old_headers')
+ install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
+endif
+
+# Build documentation
+if build_docs
+ lv2_worker_docs = custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../html',
+ '--style-uri=../../aux/style.css',
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: files('worker.ttl'),
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+endif