From 42fc788556b98cf198ba4d0ca140e03c4af8ffca Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 6 Jul 2020 22:55:53 +0100 Subject: [PATCH] Can now build lv2 plugins too Signed-off-by: falkTX --- libs/lv2-ttl-generator/meson.build | 20 ++++++++++++++++ libs/meson.build | 1 + ports-legacy/meson.build | 37 +++++++++++++++++++++++++++++- scripts/plugin-symbols.txt | 4 ++++ scripts/plugin-symbols.version | 2 +- 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 libs/lv2-ttl-generator/meson.build create mode 100644 scripts/plugin-symbols.txt diff --git a/libs/lv2-ttl-generator/meson.build b/libs/lv2-ttl-generator/meson.build new file mode 100644 index 00000000..d2322308 --- /dev/null +++ b/libs/lv2-ttl-generator/meson.build @@ -0,0 +1,20 @@ +############################################################################### + +lv2_ttl_generator_dependencies = [ +] + +if not os_windows + lv2_ttl_generator_dependencies = [ + cc.find_library('dl'), + ] +endif + +lv2_ttl_generator = executable('lv2_ttl_generator', + sources: [ + 'lv2_ttl_generator.cpp' + ], + dependencies: lv2_ttl_generator_dependencies, + install: false, +) + +############################################################################### diff --git a/libs/meson.build b/libs/meson.build index 079c2d97..c9127aba 100644 --- a/libs/meson.build +++ b/libs/meson.build @@ -3,5 +3,6 @@ subdir('drowaudio') subdir('juced') subdir('juce-legacy') +subdir('lv2-ttl-generator') ############################################################################### diff --git a/ports-legacy/meson.build b/ports-legacy/meson.build index d00f2d9c..10f88cca 100644 --- a/ports-legacy/meson.build +++ b/ports-legacy/meson.build @@ -118,7 +118,11 @@ endif link_flags_plugin = [ ] -if not os_darwin +if os_darwin + link_flags_plugin += [ + '-Wl,-export-symbols=../scripts/plugin-symbols.txt', + ] +else link_flags_plugin += [ '-Wl,--version-script=../scripts/plugin-symbols.version', ] @@ -221,6 +225,37 @@ foreach plugin : plugins endif endif + if build_lv2 + plugin_lv2_lib = shared_library(plugin_name + '_lv2', + name_prefix: '', + sources: plugin_srcs, + include_directories: [ + include_directories(plugin / 'source'), + plugin_include_dirs, + plugin_extra_include_dirs, + ], + c_args: build_flags + build_flags_plugin + build_flags_plugin_lv2 + plugin_extra_build_flags, + cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_lv2 + plugin_extra_build_flags, + link_args: link_flags + link_flags_plugin, + link_with: link_with_plugin, + dependencies: dependencies_plugin + plugin_extra_dependencies, + install: true, + install_dir: lv2dir / plugin + '.lv2', + ) + + plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl', + output: plugin_name + '.lv2', + input: plugin_lv2_lib, + command: [ + 'mkdir', '-p', meson.current_build_dir() / plugin_name + '.lv2', '&&', + 'cd', meson.current_build_dir() / plugin_name + '.lv2', '&&', + lv2_ttl_generator, plugin_lv2_lib.full_path(), + ], + install: true, + install_dir: lv2dir / plugin + '.lv2', + ) + endif + if build_vst2 plugin_vst2_lib = shared_library(plugin_name, name_prefix: '', diff --git a/scripts/plugin-symbols.txt b/scripts/plugin-symbols.txt new file mode 100644 index 00000000..11bb5616 --- /dev/null +++ b/scripts/plugin-symbols.txt @@ -0,0 +1,4 @@ +lv2_generate_ttl +lv2_descriptor +lv2ui_descriptor +VSTPluginMain diff --git a/scripts/plugin-symbols.version b/scripts/plugin-symbols.version index b719ba39..0a4d0a30 100644 --- a/scripts/plugin-symbols.version +++ b/scripts/plugin-symbols.version @@ -1,4 +1,4 @@ { - global: VSTPluginMain; + global: VSTPluginMain; lv2_generate_ttl; lv2_descriptor; lv2ui_descriptor; local: *; };