Browse Source

Add option to build only legacy stuff

tags/2020-12-27
falkTX 3 years ago
parent
commit
0c95b34fc8
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 120 additions and 110 deletions
  1. +1
    -0
      meson.build
  2. +7
    -0
      meson_options.txt
  3. +112
    -110
      ports/meson.build

+ 1
- 0
meson.build View File

@@ -20,6 +20,7 @@ endif
build_lv2 = get_option('build-lv2')
build_vst2 = get_option('build-vst2')
build_vst3 = get_option('build-vst3')
build_legacy_only = get_option('build-legacy-only')
linux_embed = get_option('linux-embed')
optimizations = get_option('optimizations') and host_machine.cpu_family().contains('x86')



+ 7
- 0
meson_options.txt View File

@@ -28,10 +28,17 @@ option('build-vst3',
description: 'Build VST3 plugin variants',
)

option('build-legacy-only',
type: 'boolean',
value: false,
description: 'Build only legacy libraries and plugins',
)

option('plugins',
type : 'array',
description: 'Plugins to build',
choices : [
'CHOW',
'arctican-function',
'arctican-pilgrim',
'dexed',


+ 112
- 110
ports/meson.build View File

@@ -151,128 +151,130 @@ endif
###############################################################################

foreach plugin : plugins
plugin_uses_opengl = false
plugin_extra_dependencies = []
plugin_extra_include_dirs = []
plugin_extra_build_flags = []
plugin_extra_link_flags = []
plugin_extra_format_specific_srcs = []

subdir(plugin)

plugin_extra_format_specific_srcs += files([
'../libs/juce-plugin/JucePluginMain.cpp',
'../libs/juce-plugin/JucePluginUtils.cpp',
])

if plugin_uses_opengl
if os_darwin
plugin_extra_link_flags += [
'-framework OpenGL',
]
elif os_windows
plugin_extra_dependencies += [
cc.find_library('opengl32'),
]
elif not linux_embed
plugin_extra_dependencies += [
dependency('gl')
]
if plugin in get_option('plugins') and not build_legacy_only
plugin_uses_opengl = false
plugin_extra_dependencies = []
plugin_extra_include_dirs = []
plugin_extra_build_flags = []
plugin_extra_link_flags = []
plugin_extra_format_specific_srcs = []

subdir(plugin)

plugin_extra_format_specific_srcs += files([
'../libs/juce-plugin/JucePluginMain.cpp',
'../libs/juce-plugin/JucePluginUtils.cpp',
])

if plugin_uses_opengl
if os_darwin
plugin_extra_link_flags += [
'-framework OpenGL',
]
elif os_windows
plugin_extra_dependencies += [
cc.find_library('opengl32'),
]
elif not linux_embed
plugin_extra_dependencies += [
dependency('gl')
]
endif
endif
endif

plugin_lib = static_library(plugin_name + '_lib',
name_prefix: '',
sources: plugin_srcs,
include_directories: [
include_directories(plugin),
plugin_include_dirs,
plugin_extra_include_dirs,
],
c_args: build_flags + build_flags_plugin + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flag_plugin_cpp + plugin_extra_build_flags,
dependencies: dependencies_plugin + plugin_extra_dependencies,
pic: true,
install: false,
)

if build_lv2
plugin_lv2_lib = shared_library(plugin_name + '_lv2',
plugin_lib = static_library(plugin_name + '_lib',
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
sources: plugin_srcs,
include_directories: [
include_directories(plugin),
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 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
c_args: build_flags + build_flags_plugin + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flag_plugin_cpp + plugin_extra_build_flags,
dependencies: dependencies_plugin + plugin_extra_dependencies,
pic: true,
install: false,
)

plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(meson.is_cross_build() ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
install: true,
install_dir: lv2dir,
)
endif

if build_vst2
plugin_vst2 = shared_library(plugin_name,
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
include_directories: [
include_directories(plugin),
plugin_include_dirs,
plugin_extra_include_dirs,
],
c_args: build_flags + build_flags_plugin + build_flags_plugin_vst2 + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_vst2 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
install: true,
install_dir: vst2dir,
)
endif

if build_vst3
plugin_vst3_lib = shared_library(plugin_name + '-vst3',
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
include_directories: [
include_directories(plugin),
plugin_include_dirs,
plugin_extra_include_dirs,
],
c_args: build_flags + build_flags_plugin + build_flags_plugin_vst3 + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_vst3 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
)
if build_lv2
plugin_lv2_lib = shared_library(plugin_name + '_lv2',
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
include_directories: [
include_directories(plugin),
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 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
)

plugin_lv2_dir = meson.current_build_dir() / plugin_name + '.lv2'

plugin_lv2_ttl = custom_target(plugin_name + '_lv2-ttl',
output: plugin_name + '.lv2',
input: plugin_lv2_lib,
command: [
'mkdir', '-p', plugin_lv2_dir, '&&',
'cd', plugin_lv2_dir, '&&',
'mv', plugin_lv2_lib.full_path(), plugin_lv2_dir / plugin_name + lib_suffix, '&&',
(meson.is_cross_build() ? 'wine' : 'env'), lv2_ttl_generator, '.' / plugin_name + lib_suffix,
],
install: true,
install_dir: lv2dir,
)
endif

plugin_vst3_dir = meson.current_build_dir() / plugin_name + '.vst3' / 'Contents' / host_machine.cpu_family() + '-' + host_machine.system()
if build_vst2
plugin_vst2 = shared_library(plugin_name,
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
include_directories: [
include_directories(plugin),
plugin_include_dirs,
plugin_extra_include_dirs,
],
c_args: build_flags + build_flags_plugin + build_flags_plugin_vst2 + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_vst2 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
install: true,
install_dir: vst2dir,
)
endif

plugin_vst3 = custom_target(plugin_name + '_vst3-bundle',
output: plugin_name + '.vst3',
input: plugin_vst3_lib,
command: [
'mkdir', '-p', plugin_vst3_dir, '&&',
'cd', plugin_vst3_dir, '&&',
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
],
install: true,
install_dir: vst3dir,
)
if build_vst3
plugin_vst3_lib = shared_library(plugin_name + '-vst3',
name_prefix: '',
sources: plugin_extra_format_specific_srcs,
include_directories: [
include_directories(plugin),
plugin_include_dirs,
plugin_extra_include_dirs,
],
c_args: build_flags + build_flags_plugin + build_flags_plugin_vst3 + plugin_extra_build_flags,
cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_vst3 + build_flag_plugin_cpp + plugin_extra_build_flags,
link_args: link_flags + link_flags_plugin,
link_with: [ lib_juce_current, plugin_lib ],
)

plugin_vst3_dir = meson.current_build_dir() / plugin_name + '.vst3' / 'Contents' / host_machine.cpu_family() + '-' + host_machine.system()

plugin_vst3 = custom_target(plugin_name + '_vst3-bundle',
output: plugin_name + '.vst3',
input: plugin_vst3_lib,
command: [
'mkdir', '-p', plugin_vst3_dir, '&&',
'cd', plugin_vst3_dir, '&&',
'mv', plugin_vst3_lib.full_path(), plugin_vst3_dir / plugin_name + lib_suffix,
],
install: true,
install_dir: vst3dir,
)
endif
endif
endforeach



Loading…
Cancel
Save