|
|
|
project('lv2', ['c'],
|
|
|
|
version: '1.18.3',
|
|
|
|
license: 'ISC',
|
|
|
|
meson_version: '>= 0.49.2',
|
|
|
|
default_options: [
|
|
|
|
'b_ndebug=if-release',
|
|
|
|
'buildtype=release',
|
|
|
|
'c_std=c99',
|
|
|
|
'default_library=both',
|
|
|
|
'warning_level=2',
|
|
|
|
])
|
|
|
|
|
|
|
|
# Load build tools
|
|
|
|
pkg = import('pkgconfig')
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
|
|
|
if host_machine.system() == 'darwin'
|
|
|
|
lv2dir = '/Library/Audio/Plug-Ins/LV2'
|
|
|
|
default_lv2_path = [
|
|
|
|
'~/Library/Audio/Plug-Ins/LV2',
|
|
|
|
'~/.lv2',
|
|
|
|
'/usr/local/lib/lv2',
|
|
|
|
'/usr/lib/lv2',
|
|
|
|
'/Library/Audio/Plug-Ins/LV2',
|
|
|
|
]
|
|
|
|
elif host_machine.system() == 'haiku'
|
|
|
|
default_lv2_path = [
|
|
|
|
'~/.lv2',
|
|
|
|
'/boot/common/add-ons/lv2',
|
|
|
|
]
|
|
|
|
elif host_machine.system() == 'win32'
|
|
|
|
lv2dir = env_path('COMMONPROGRAMFILES', 'LV2')
|
|
|
|
default_lv2_path = [
|
|
|
|
'%APPDATA%\\\\LV2',
|
|
|
|
'%COMMONPROGRAMFILES%\\\\LV2',
|
|
|
|
]
|
|
|
|
else
|
|
|
|
libdirname = get_option('libdir')
|
|
|
|
lv2dir = get_option('prefix') / get_option('libdir')
|
|
|
|
default_lv2_path = [
|
|
|
|
'~/.lv2',
|
|
|
|
'/usr/@0@/lv2'.format(libdirname),
|
|
|
|
'/usr/local/@0@/lv2'.format(libdirname),
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Map of specification base name to old URI-style include path
|
|
|
|
spec_map = {
|
|
|
|
'atom': 'lv2/lv2plug.in/ns/ext/atom',
|
|
|
|
'buf-size': 'lv2/lv2plug.in/ns/ext/buf-size',
|
|
|
|
'core': 'lv2/lv2plug.in/ns/lv2core',
|
|
|
|
'data-access': 'lv2/lv2plug.in/ns/ext/data-access',
|
|
|
|
'dynmanifest': 'lv2/lv2plug.in/ns/ext/dynmanifest',
|
|
|
|
'event': 'lv2/lv2plug.in/ns/ext/event',
|
|
|
|
'instance-access': 'lv2/lv2plug.in/ns/ext/instance-access',
|
|
|
|
'log': 'lv2/lv2plug.in/ns/ext/log',
|
|
|
|
'midi': 'lv2/lv2plug.in/ns/ext/midi',
|
|
|
|
'morph': 'lv2/lv2plug.in/ns/ext/morph',
|
|
|
|
'options': 'lv2/lv2plug.in/ns/ext/options',
|
|
|
|
'parameters': 'lv2/lv2plug.in/ns/ext/parameters',
|
|
|
|
'patch': 'lv2/lv2plug.in/ns/ext/patch',
|
|
|
|
'port-groups': 'lv2/lv2plug.in/ns/ext/port-groups',
|
|
|
|
'port-props': 'lv2/lv2plug.in/ns/ext/port-props',
|
|
|
|
'presets': 'lv2/lv2plug.in/ns/ext/presets',
|
|
|
|
'resize-port': 'lv2/lv2plug.in/ns/ext/resize-port',
|
|
|
|
'state': 'lv2/lv2plug.in/ns/ext/state',
|
|
|
|
'time': 'lv2/lv2plug.in/ns/ext/time',
|
|
|
|
'ui': 'lv2/lv2plug.in/ns/extensions/ui',
|
|
|
|
'units': 'lv2/lv2plug.in/ns/extensions/units',
|
|
|
|
'uri-map': 'lv2/lv2plug.in/ns/ext/uri-map',
|
|
|
|
'urid': 'lv2/lv2plug.in/ns/ext/urid',
|
|
|
|
'worker': 'lv2/lv2plug.in/ns/ext/worker',
|
|
|
|
}
|
|
|
|
|
|
|
|
pkg.generate(
|
|
|
|
name: 'LV2',
|
|
|
|
filebase: 'lv2',
|
|
|
|
subdirs: ['lv2'],
|
|
|
|
version: meson.project_version(),
|
|
|
|
description: 'An extensible audio plugin interface')
|
|
|
|
|
|
|
|
install_headers('lv2/atom/atom.h', 'lv2/atom/forge.h', 'lv2/atom/util.h', subdir: 'lv2/atom')
|
|
|
|
install_headers('lv2/buf-size/buf-size.h', subdir: 'lv2/buf-size')
|
|
|
|
install_headers('lv2/core/attributes.h', subdir: 'lv2/core')
|
|
|
|
install_headers('lv2/core/lv2.h', subdir: 'lv2/core')
|
|
|
|
install_headers('lv2/data-access/data-access.h', subdir: 'lv2/data-access')
|
|
|
|
install_headers('lv2/dynmanifest/dynmanifest.h', subdir: 'lv2/dynmanifest')
|
|
|
|
install_headers('lv2/event/event-helpers.h', subdir: 'lv2/event')
|
|
|
|
install_headers('lv2/event/event.h', subdir: 'lv2/event')
|
|
|
|
install_headers('lv2/instance-access/instance-access.h', subdir: 'lv2/instance-access')
|
|
|
|
install_headers('lv2/log/log.h', 'lv2/log/logger.h', subdir: 'lv2/log')
|
|
|
|
install_headers('lv2/midi/midi.h', subdir: 'lv2/midi')
|
|
|
|
install_headers('lv2/morph/morph.h', subdir: 'lv2/morph')
|
|
|
|
install_headers('lv2/options/options.h', subdir: 'lv2/options')
|
|
|
|
install_headers('lv2/parameters/parameters.h', subdir: 'lv2/parameters')
|
|
|
|
install_headers('lv2/patch/patch.h', subdir: 'lv2/patch')
|
|
|
|
install_headers('lv2/port-groups/port-groups.h', subdir: 'lv2/port-groups')
|
|
|
|
install_headers('lv2/port-props/port-props.h', subdir: 'lv2/port-props')
|
|
|
|
install_headers('lv2/presets/presets.h', subdir: 'lv2/presets')
|
|
|
|
install_headers('lv2/resize-port/resize-port.h', subdir: 'lv2/resize-port')
|
|
|
|
install_headers('lv2/state/state.h', subdir: 'lv2/state')
|
|
|
|
install_headers('lv2/time/time.h', subdir: 'lv2/time')
|
|
|
|
install_headers('lv2/ui/ui.h', subdir: 'lv2/ui')
|
|
|
|
install_headers('lv2/units/units.h', subdir: 'lv2/units')
|
|
|
|
install_headers('lv2/uri-map/uri-map.h', subdir: 'lv2/uri-map')
|
|
|
|
install_headers('lv2/urid/urid.h', subdir: 'lv2/urid')
|
|
|
|
install_headers('lv2/worker/worker.h', subdir: 'lv2/worker')
|
|
|
|
|
|
|
|
lv2_dep = declare_dependency(
|
|
|
|
include_directories: include_directories('.'),
|
|
|
|
version: meson.project_version())
|
|
|
|
|
|
|
|
# plugins/eg-fifths.lv2/uris.h
|
|
|
|
# plugins/eg-params.lv2/state_map.h
|
|
|
|
# plugins/eg-sampler.lv2/atom_sink.h
|
|
|
|
# plugins/eg-sampler.lv2/peaks.h
|
|
|
|
# plugins/eg-sampler.lv2/uris.h
|
|
|
|
# plugins/eg-scope.lv2/uris.h
|