diff options
author | David Robillard <d@drobilla.net> | 2022-07-07 18:59:06 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-07-17 18:13:53 -0400 |
commit | d4a970f6962dda28133290194832b726b566ddab (patch) | |
tree | cfe9747042d55388705371a8ce95505ffb702470 /plugins | |
parent | 7f3a2651a3635232d94f7bf9ce23d6b575735732 (diff) | |
download | lv2-d4a970f6962dda28133290194832b726b566ddab.tar.xz |
Switch to meson build system
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/eg-amp.lv2/meson.build | 41 | ||||
l--------- | plugins/eg-amp.lv2/waf | 1 | ||||
-rw-r--r-- | plugins/eg-amp.lv2/wscript | 51 | ||||
-rw-r--r-- | plugins/eg-fifths.lv2/meson.build | 41 | ||||
l--------- | plugins/eg-fifths.lv2/waf | 1 | ||||
-rw-r--r-- | plugins/eg-fifths.lv2/wscript | 49 | ||||
-rw-r--r-- | plugins/eg-metro.lv2/meson.build | 41 | ||||
l--------- | plugins/eg-metro.lv2/waf | 1 | ||||
-rw-r--r-- | plugins/eg-metro.lv2/wscript | 50 | ||||
-rw-r--r-- | plugins/eg-midigate.lv2/meson.build | 41 | ||||
l--------- | plugins/eg-midigate.lv2/waf | 1 | ||||
-rw-r--r-- | plugins/eg-midigate.lv2/wscript | 49 | ||||
-rw-r--r-- | plugins/eg-params.lv2/meson.build | 41 | ||||
-rw-r--r-- | plugins/eg-params.lv2/wscript | 49 | ||||
-rw-r--r-- | plugins/eg-sampler.lv2/meson.build | 44 | ||||
l--------- | plugins/eg-sampler.lv2/waf | 1 | ||||
-rw-r--r-- | plugins/eg-sampler.lv2/wscript | 64 | ||||
-rw-r--r-- | plugins/eg-scope.lv2/meson.build | 41 | ||||
-rw-r--r-- | plugins/eg-scope.lv2/wscript | 56 | ||||
-rw-r--r-- | plugins/meson.build | 82 | ||||
-rw-r--r-- | plugins/wscript | 45 |
21 files changed, 372 insertions, 418 deletions
diff --git a/plugins/eg-amp.lv2/meson.build b/plugins/eg-amp.lv2/meson.build new file mode 100644 index 0000000..2b15b01 --- /dev/null +++ b/plugins/eg-amp.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('amp.c') +bundle_name = 'eg-amp.lv2' +data_filenames = ['manifest.ttl.in', 'amp.ttl'] + +module = shared_library( + 'amp', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-amp.lv2/waf b/plugins/eg-amp.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/plugins/eg-amp.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/plugins/eg-amp.lv2/wscript b/plugins/eg-amp.lv2/wscript deleted file mode 100644 index 822825d..0000000 --- a/plugins/eg-amp.lv2/wscript +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-amp.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2', uselib_store='LV2') - - conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) - -def build(bld): - bundle = 'eg-amp.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-amp.lv2) - for i in ['amp.ttl']: - bld(features = 'subst', - is_copy = True, - source = i, - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'amp.c', - name = 'amp', - target = 'lv2/%s/amp' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - uselib = 'M LV2') diff --git a/plugins/eg-fifths.lv2/meson.build b/plugins/eg-fifths.lv2/meson.build new file mode 100644 index 0000000..fd38ee3 --- /dev/null +++ b/plugins/eg-fifths.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('fifths.c') +bundle_name = 'eg-fifths.lv2' +data_filenames = ['manifest.ttl.in', 'fifths.ttl'] + +module = shared_library( + 'fifths', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-fifths.lv2/waf b/plugins/eg-fifths.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/plugins/eg-fifths.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/plugins/eg-fifths.lv2/wscript b/plugins/eg-fifths.lv2/wscript deleted file mode 100644 index 8b2991b..0000000 --- a/plugins/eg-fifths.lv2/wscript +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-fifths.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2 >= 1.2.1', uselib_store='LV2') - -def build(bld): - bundle = 'eg-fifths.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-fifths.lv2) - for i in ['fifths.ttl']: - bld(features = 'subst', - is_copy = True, - source = i, - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'fifths.c', - name = 'fifths', - target = 'lv2/%s/fifths' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2') diff --git a/plugins/eg-metro.lv2/meson.build b/plugins/eg-metro.lv2/meson.build new file mode 100644 index 0000000..f881eca --- /dev/null +++ b/plugins/eg-metro.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('metro.c') +bundle_name = 'eg-metro.lv2' +data_filenames = ['manifest.ttl.in', 'metro.ttl'] + +module = shared_library( + 'metro', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-metro.lv2/waf b/plugins/eg-metro.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/plugins/eg-metro.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/plugins/eg-metro.lv2/wscript b/plugins/eg-metro.lv2/wscript deleted file mode 100644 index 5fb0d07..0000000 --- a/plugins/eg-metro.lv2/wscript +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-metro.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2 >= 0.2.0', uselib_store='LV2') - - conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) - -def build(bld): - bundle = 'eg-metro.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-metro.lv2) - bld(features = 'subst', - is_copy = True, - source = 'metro.ttl', - target = 'lv2/%s/metro.ttl' % bundle, - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'metro.c', - name = 'metro', - target = 'lv2/%s/metro' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = ['M', 'LV2']) diff --git a/plugins/eg-midigate.lv2/meson.build b/plugins/eg-midigate.lv2/meson.build new file mode 100644 index 0000000..0e35fd1 --- /dev/null +++ b/plugins/eg-midigate.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('midigate.c') +bundle_name = 'eg-midigate.lv2' +data_filenames = ['manifest.ttl.in', 'midigate.ttl'] + +module = shared_library( + 'midigate', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-midigate.lv2/waf b/plugins/eg-midigate.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/plugins/eg-midigate.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/plugins/eg-midigate.lv2/wscript b/plugins/eg-midigate.lv2/wscript deleted file mode 100644 index 5862721..0000000 --- a/plugins/eg-midigate.lv2/wscript +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-midigate.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2', uselib_store='LV2') - -def build(bld): - bundle = 'eg-midigate.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-midigate.lv2) - for i in ['midigate.ttl']: - bld(features = 'subst', - is_copy = True, - source = i, - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'midigate.c', - name = 'midigate', - target = 'lv2/%s/midigate' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - uselib = 'LV2') diff --git a/plugins/eg-params.lv2/meson.build b/plugins/eg-params.lv2/meson.build new file mode 100644 index 0000000..4c1e576 --- /dev/null +++ b/plugins/eg-params.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('params.c') +bundle_name = 'eg-params.lv2' +data_filenames = ['manifest.ttl.in', 'params.ttl'] + +module = shared_library( + 'params', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-params.lv2/wscript b/plugins/eg-params.lv2/wscript deleted file mode 100644 index 503e8db..0000000 --- a/plugins/eg-params.lv2/wscript +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-params.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2 >= 1.12.1', uselib_store='LV2') - -def build(bld): - bundle = 'eg-params.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-params.lv2) - for i in ['params.ttl']: - bld(features = 'subst', - is_copy = True, - source = i, - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'params.c', - name = 'params', - target = 'lv2/%s/params' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2') diff --git a/plugins/eg-sampler.lv2/meson.build b/plugins/eg-sampler.lv2/meson.build new file mode 100644 index 0000000..85dc9a0 --- /dev/null +++ b/plugins/eg-sampler.lv2/meson.build @@ -0,0 +1,44 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('sampler.c') +bundle_name = 'eg-sampler.lv2' +data_filenames = ['manifest.ttl.in', 'sampler.ttl'] + +sndfile_dep = dependency('sndfile', + version: '>= 1.0.0', + required: get_option('plugins')) + +if sndfile_dep.found() + module = shared_library( + 'sampler', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep, sndfile_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', + ) + + extension = '.' + module.full_path().split('.')[-1] + config = configuration_data({'LIB_EXT': extension}) + + foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif + endforeach +endif diff --git a/plugins/eg-sampler.lv2/waf b/plugins/eg-sampler.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/plugins/eg-sampler.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/plugins/eg-sampler.lv2/wscript b/plugins/eg-sampler.lv2/wscript deleted file mode 100644 index 8c640c1..0000000 --- a/plugins/eg-sampler.lv2/wscript +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-sampler.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2 >= 1.2.1', uselib_store='LV2') - conf.check_pkg('sndfile >= 1.0.0', uselib_store='SNDFILE') - conf.check_pkg('gtk+-2.0 >= 2.18.0', - uselib_store='GTK2', - system=True, - mandatory=False) - conf.check(features='c cshlib', lib='m', uselib_store='M', mandatory=False) - -def build(bld): - bundle = 'eg-sampler.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - bld(features = 'subst', - source = 'manifest.ttl.in', - target = 'lv2/%s/%s' % (bundle, 'manifest.ttl'), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Copy other data files to build bundle (build/eg-sampler.lv2) - for i in ['sampler.ttl', 'click.wav']: - bld(features = 'subst', - is_copy = True, - source = i, - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'sampler.c', - name = 'sampler', - target = 'lv2/%s/sampler' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = ['M', 'SNDFILE', 'LV2']) - - # Build UI library - if bld.env.HAVE_GTK2: - obj = bld(features = 'c cshlib lv2lib', - source = 'sampler_ui.c', - name = 'sampler_ui', - target = 'lv2/%s/sampler_ui' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = ['GTK2', 'LV2']) diff --git a/plugins/eg-scope.lv2/meson.build b/plugins/eg-scope.lv2/meson.build new file mode 100644 index 0000000..ecf01b2 --- /dev/null +++ b/plugins/eg-scope.lv2/meson.build @@ -0,0 +1,41 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +plugin_sources = files('examploscope.c') +bundle_name = 'eg-scope.lv2' +data_filenames = ['manifest.ttl.in', 'examploscope.ttl.in'] + +module = shared_library( + 'examploscope', + plugin_sources, + c_args: c_suppressions, + dependencies: [lv2_dep, m_dep], + gnu_symbol_visibility: 'hidden', + install: true, + install_dir: lv2dir / bundle_name, + name_prefix: '', +) + +config = configuration_data( + { + 'LIB_EXT': '.' + module.full_path().split('.')[-1], + } +) + +foreach filename : data_filenames + if filename.endswith('.in') + configure_file( + configuration: config, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename.substring(0, -3), + ) + else + configure_file( + copy: true, + input: files(filename), + install_dir: lv2dir / bundle_name, + output: filename, + ) + endif +endforeach diff --git a/plugins/eg-scope.lv2/wscript b/plugins/eg-scope.lv2/wscript deleted file mode 100644 index 4333502..0000000 --- a/plugins/eg-scope.lv2/wscript +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python -from waflib.extras import autowaf as autowaf -import re - -# Variables for 'waf dist' -APPNAME = 'eg-scope.lv2' -VERSION = '1.0.0' - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('lv2') - autowaf.set_options(opt) - -def configure(conf): - conf.load('compiler_c', cache=True) - conf.load('lv2', cache=True) - conf.load('autowaf', cache=True) - - conf.check_pkg('lv2 >= 1.2.1', uselib_store='LV2') - conf.check_pkg('cairo >= 1.8.10', uselib_store='CAIRO') - conf.check_pkg('gtk+-2.0 >= 2.18.0', - uselib_store='GTK2', - system=True, - mandatory=False) - -def build(bld): - bundle = 'eg-scope.lv2' - - # Build manifest.ttl by substitution (for portable lib extension) - for i in ['manifest.ttl', 'examploscope.ttl']: - bld(features = 'subst', - source = i + '.in', - target = 'lv2/%s/%s' % (bundle, i), - install_path = '${LV2DIR}/%s' % bundle, - LIB_EXT = bld.env.LV2_LIB_EXT) - - # Build plugin library - obj = bld(features = 'c cshlib lv2lib', - source = 'examploscope.c', - name = 'examploscope', - target = 'lv2/%s/examploscope' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = 'LV2') - - # Build UI library - if bld.env.HAVE_GTK2: - obj = bld(features = 'c cshlib lv2lib', - source = 'examploscope_ui.c', - name = 'examploscope_ui', - target = 'lv2/%s/examploscope_ui' % bundle, - install_path = '${LV2DIR}/%s' % bundle, - use = 'GTK2 CAIRO LV2') diff --git a/plugins/meson.build b/plugins/meson.build new file mode 100644 index 0000000..ee114ef --- /dev/null +++ b/plugins/meson.build @@ -0,0 +1,82 @@ +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR ISC + +if not get_option('plugins').disabled() + m_dep = cc.find_library('m', required: false) + + subdir('eg-amp.lv2') + subdir('eg-fifths.lv2') + subdir('eg-metro.lv2') + subdir('eg-midigate.lv2') + subdir('eg-params.lv2') + subdir('eg-sampler.lv2') + subdir('eg-scope.lv2') +endif + +if not get_option('docs').disabled() + literasc_py = files('literasc.py') + asciidoc = find_program('asciidoc', required: get_option('docs')) + + if asciidoc.found() + book_inputs = files( + 'README.txt', + 'eg-amp.lv2/README.txt', + 'eg-amp.lv2/amp.c', + 'eg-amp.lv2/amp.ttl', + 'eg-fifths.lv2/README.txt', + 'eg-fifths.lv2/fifths.c', + 'eg-fifths.lv2/fifths.ttl', + 'eg-fifths.lv2/uris.h', + 'eg-metro.lv2/README.txt', + 'eg-metro.lv2/metro.c', + 'eg-metro.lv2/metro.ttl', + 'eg-midigate.lv2/README.txt', + 'eg-midigate.lv2/midigate.c', + 'eg-midigate.lv2/midigate.ttl', + 'eg-params.lv2/README.txt', + 'eg-params.lv2/params.c', + 'eg-params.lv2/params.ttl', + 'eg-params.lv2/state_map.h', + 'eg-sampler.lv2/README.txt', + 'eg-sampler.lv2/atom_sink.h', + 'eg-sampler.lv2/peaks.h', + 'eg-sampler.lv2/sampler.c', + 'eg-sampler.lv2/sampler.ttl', + 'eg-sampler.lv2/sampler_ui.c', + 'eg-sampler.lv2/uris.h', + 'eg-scope.lv2/README.txt', + 'eg-scope.lv2/examploscope.c', + 'eg-scope.lv2/examploscope_ui.c', + 'eg-scope.lv2/uris.h', + ) + + # Compile book sources into book.txt asciidoc source + book_txt = custom_target( + 'book.txt', + command: [ + literasc_py, + '@OUTPUT@', + '@INPUT@', + ], + input: book_inputs, + output: 'book.txt', + ) + + # Run asciidoc to generate book.html + book_html = custom_target( + 'book.html', + build_by_default: true, + command: [ + asciidoc, + '-a', 'stylesdir=' + lv2_source_root / 'doc', + '-a', 'source-highlighter=pygments', + '-a', 'pygments-style=' + lv2_source_root / 'doc' / 'style.css', + '-b', 'html', + '-o', '@OUTPUT@', + '@INPUT@', + ], + input: book_txt, + output: 'book.html', + ) + endif +endif diff --git a/plugins/wscript b/plugins/wscript deleted file mode 100644 index 590a529..0000000 --- a/plugins/wscript +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -import os - -from waflib.extras import autowaf as autowaf -import waflib.Logs as Logs - -import literasc - -def configure(conf): - pass - -def bld_book_src(task): - filenames = [] - for i in task.inputs: - filenames += [i.abspath()] - - literasc.gen(open(task.outputs[0].abspath(), 'w'), filenames) - -def build(bld): - files = [bld.path.find_node('README.txt')] - for i in ['eg-amp.lv2', - 'eg-midigate.lv2', - 'eg-fifths.lv2', - 'eg-metro.lv2', - 'eg-sampler.lv2', - 'eg-scope.lv2', - 'eg-params.lv2']: - files += bld.path.ant_glob('%s/*.txt' % i) - files += bld.path.ant_glob('%s/manifest.ttl*' % i) - files += bld.path.ant_glob('%s/*.ttl' % i) - files += bld.path.ant_glob('%s/*.c' % i) - files += bld.path.ant_glob('%s/*.h' % i) - - # Compile book sources into book.txt asciidoc source - bld(rule = bld_book_src, - source = files, - target = 'book.txt') - - # Run asciidoc to generate book.html - stylesdir = bld.path.find_node('../doc/').abspath() - pygments_style = bld.path.find_node('../doc/style.css').abspath() - bld(rule = 'asciidoc -a stylesdir=%s -a source-highlighter=pygments -a pygments-style=%s -b html -o ${TGT} ${SRC}' % ( - stylesdir, pygments_style), - source = 'book.txt', - target = 'book.html') |