diff --git a/libs/drowaudio/meson.build b/libs/drowaudio/meson.build index 2fc22f83..805224ce 100644 --- a/libs/drowaudio/meson.build +++ b/libs/drowaudio/meson.build @@ -11,6 +11,7 @@ lib_drowaudio = static_library('drowaudio', include_directories('..' / 'juce-legacy' / 'source' / 'modules'), ], cpp_args: build_flags_cpp, + dependencies: dependencies, pic: true, install: false, ) diff --git a/libs/juce-legacy/meson.build b/libs/juce-legacy/meson.build index d8d85256..4b9ffa19 100644 --- a/libs/juce-legacy/meson.build +++ b/libs/juce-legacy/meson.build @@ -40,6 +40,7 @@ lib_juce_legacy = static_library('juce-legacy', include_directories('source' / 'modules'), ], cpp_args: build_flags_cpp, + dependencies: dependencies, pic: true, install: false, ) diff --git a/libs/juced/meson.build b/libs/juced/meson.build index 6032cc3f..53c1c230 100644 --- a/libs/juced/meson.build +++ b/libs/juced/meson.build @@ -11,6 +11,7 @@ lib_juced = static_library('juced', include_directories('..' / 'juce-legacy' / 'source' / 'modules'), ], cpp_args: build_flags_cpp, + dependencies: dependencies, pic: true, install: false, ) diff --git a/meson.build b/meson.build index 6115f5f8..4df1aad7 100644 --- a/meson.build +++ b/meson.build @@ -13,9 +13,19 @@ prefix = get_option('prefix') bindir = get_option('bindir') libdir = get_option('libdir') +build_lv2 = get_option('build-lv2') +build_vst2 = get_option('build-vst2') +build_vst3 = get_option('build-vst3') linux_embed = get_option('linux-embed') optimizations = get_option('optimizations') +############################################################################### +# set paths + +lv2dir = prefix / libdir / 'lv2' +vst2dir = prefix / libdir / 'vst' +vst3dir = prefix / libdir / 'vst3' + ############################################################################### # set target OS @@ -37,12 +47,15 @@ endif if os_darwin bin_suffix = '' lib_suffix = '.dylib' + bintype_prefix = 'Mac-' elif os_windows bin_suffix = '.exe' lib_suffix = '.dll' + bintype_prefix = 'Windows-' else bin_suffix = '' lib_suffix = '.so' + bintype_prefix = 'Linux-' endif ############################################################################### @@ -51,32 +64,64 @@ endif cc = meson.get_compiler('c') cpp = meson.get_compiler('cpp') +############################################################################### +# dependencies + +dependencies = [ +] + +if os_linux + dependencies += [ + cc.find_library('dl'), + cc.find_library('rt'), + ] +endif + +if os_linux and not linux_embed + dependencies += [ + dependency('alsa'), + dependency('freetype2'), + dependency('x11'), + dependency('xext'), + ] +endif + +############################################################################### +# build flags + build_flags = [ '-DJUCE_APP_CONFIG_HEADER="AppConfig.h"', '-pthread', - '-Wall', '-Wno-multichar', '-Wno-unused-but-set-variable', '-Wno-unused-function', '-Wno-strict-overflow', + '-Wall', + '-Wno-multichar', + '-Wno-strict-overflow', + '-Wno-unused-but-set-variable', + '-Wno-unused-function', ] build_flags_cpp = [ + '-Wno-class-memaccess', ] -build_flags_release = [ - '-O3', '-fvisibility=hidden', '-DNDEBUG=1', +build_flags_debug = [ + '-O0', '-ggdb', + '-DDEBUG=1', '-D_DEBUG=1', ] -build_flags_release_cpp = [ - '-fvisibility-inlines-hidden', +build_flags_debug_cpp = [ ] -build_flags_debug = [ - '-O0', '-ggdb', '-DDEBUG=1', '-D_DEBUG=1', +build_flags_release = [ + '-O3', '-fvisibility=hidden', + '-DNDEBUG=1', ] -build_flags_debug_cpp = [ +build_flags_release_cpp = [ + '-fvisibility-inlines-hidden', ] if optimizations and not linux_embed - build_flags_release += [ + build_flags_release += [ '-mtune=generic', '-msse', '-msse2', ] endif @@ -115,25 +160,49 @@ else build_flags += [ '-DLINUX=1', ] - build_flags_cpp += [ - '`pkg-config --cflags alsa freetype2 x11 xext`', +endif + +############################################################################### +# link flags + +link_flags = [ + '-pthread', +] + +link_flags_debug = [ +] + +link_flags_release = [ +] + +if not os_darwin + link_flags += [ + '-Wl,--no-undefined', + ] + link_flags_release += [ + '-fdata-sections', '-ffunction-sections', '-Wl,--gc-sections', + '-Wl,--as-needed', + '-Wl,--strip-all', ] endif ############################################################################### +# combine flags depending on build type if buildtype == 'debug' - build_flags = build_flags + build_flags_debug - build_flags_cpp = build_flags + build_flags_cpp + build_flags_debug_cpp + build_flags += build_flags_debug + build_flags_cpp += build_flags_debug_cpp + build_flags + link_flags += link_flags_debug else - build_flags = build_flags + build_flags_release - build_flags_cpp = build_flags + build_flags_cpp + build_flags_release_cpp + build_flags += build_flags_release + build_flags_cpp += build_flags_release_cpp + build_flags + link_flags += link_flags_release endif ############################################################################### # go into subdir to build libraries and plugins subdir('libs') -# subdir('ports') +subdir('ports-legacy') ############################################################################### diff --git a/meson_options.txt b/meson_options.txt index fb33b93b..567c18cb 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,29 +1,29 @@ option('optimizations', - type: 'boolean', - value: true, - description: 'Enable SSE2 optimizations' + type: 'boolean', + value: true, + description: 'Enable SSE2 optimizations', ) option('linux-embed', - type: 'boolean', - value: true, - description: 'DSP-only plugin builds, without editor/GUI' + type: 'boolean', + value: false, + description: 'DSP-only plugin builds, without editor/GUI', ) -option('build-lv2', - type: 'boolean', - value: true, - description: 'Build LV2 plugin variants' +option('build-lv2', + type: 'boolean', + value: true, + description: 'Build LV2 plugin variants', ) -option('build-vst2', - type: 'boolean', - value: true, - description: 'Build VST2 plugin variants' +option('build-vst2', + type: 'boolean', + value: true, + description: 'Build VST2 plugin variants', ) -option('build-vst3', - type: 'boolean', - value: true, - description: 'Build VST3 plugin variants' +option('build-vst3', + type: 'boolean', + value: true, + description: 'Build VST3 plugin variants', ) diff --git a/ports-legacy/HiReSam/meson.build b/ports-legacy/HiReSam/meson.build new file mode 100644 index 00000000..2698294a --- /dev/null +++ b/ports-legacy/HiReSam/meson.build @@ -0,0 +1,17 @@ +############################################################################### + +plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/SamWithBubble.cpp', + 'source/SpectrumAnalyserAudioProcessor.cpp', + 'source/SpectrumAnalyserAudioProcessorEditor.cpp', + 'source/SpectrumProcessor.cpp', + 'source/SpectrumViewer.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'HiReSam' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio + +############################################################################### diff --git a/ports-legacy/LUFSMeter-Multi/meson.build b/ports-legacy/LUFSMeter-Multi/meson.build new file mode 100644 index 00000000..239d6507 --- /dev/null +++ b/ports-legacy/LUFSMeter-Multi/meson.build @@ -0,0 +1,30 @@ +############################################################################### + +plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/Ebu128LoudnessMeter.cpp', + 'source/LUFSMeterAudioProcessor.cpp', + 'source/LUFSMeterAudioProcessorEditor.cpp', + 'source/filters/SecondOrderIIRFilter.cpp', + 'source/gui/AnimatedSidePanel.cpp', + 'source/gui/BackgroundGrid.cpp', + 'source/gui/BackgroundGridCaption.cpp', + 'source/gui/BackgroundVerticalLinesAndCaption.cpp', + 'source/gui/LoudnessBar.cpp', + 'source/gui/LoudnessBarRangeSlider.cpp', + 'source/gui/LoudnessHistory.cpp', + 'source/gui/LoudnessHistoryGroup.cpp', + 'source/gui/LoudnessNumeric.cpp', + 'source/gui/LoudnessRangeBar.cpp', + 'source/gui/LoudnessRangeHistory.cpp', + 'source/gui/MultiChannelLoudnessBar.cpp', + 'source/gui/PreferencesPane.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'LUFSMeterMulti' +plugin_extra_build_flags = [ + '-DLUFS_MULTI=1', +] + +############################################################################### diff --git a/ports-legacy/LUFSMeter-Multi/source b/ports-legacy/LUFSMeter-Multi/source new file mode 120000 index 00000000..bb1db1ab --- /dev/null +++ b/ports-legacy/LUFSMeter-Multi/source @@ -0,0 +1 @@ +../LUFSMeter/source/ \ No newline at end of file diff --git a/ports-legacy/LUFSMeter/meson.build b/ports-legacy/LUFSMeter/meson.build new file mode 100644 index 00000000..9811a7b4 --- /dev/null +++ b/ports-legacy/LUFSMeter/meson.build @@ -0,0 +1,27 @@ +############################################################################### + +plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/Ebu128LoudnessMeter.cpp', + 'source/LUFSMeterAudioProcessor.cpp', + 'source/LUFSMeterAudioProcessorEditor.cpp', + 'source/filters/SecondOrderIIRFilter.cpp', + 'source/gui/AnimatedSidePanel.cpp', + 'source/gui/BackgroundGrid.cpp', + 'source/gui/BackgroundGridCaption.cpp', + 'source/gui/BackgroundVerticalLinesAndCaption.cpp', + 'source/gui/LoudnessBar.cpp', + 'source/gui/LoudnessBarRangeSlider.cpp', + 'source/gui/LoudnessHistory.cpp', + 'source/gui/LoudnessHistoryGroup.cpp', + 'source/gui/LoudnessNumeric.cpp', + 'source/gui/LoudnessRangeBar.cpp', + 'source/gui/LoudnessRangeHistory.cpp', + 'source/gui/MultiChannelLoudnessBar.cpp', + 'source/gui/PreferencesPane.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'LUFSMeter' + +############################################################################### diff --git a/ports-legacy/arctican-function/meson.build b/ports-legacy/arctican-function/meson.build new file mode 100644 index 00000000..426f914d --- /dev/null +++ b/ports-legacy/arctican-function/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/PluginProcessor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/Headers/UI/Knob.cpp', + 'source/Headers/UI/FancyButton.cpp', + 'source/Headers/Binary Data/Backgrounds/thefunctionbackground.cpp', + 'source/Headers/Binary Data/UI/button.cpp', + 'source/Headers/Binary Data/UI/knobs.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TheFunction' + +############################################################################### diff --git a/ports-legacy/arctican-pilgrim/meson.build b/ports-legacy/arctican-pilgrim/meson.build new file mode 100644 index 00000000..efdc21ee --- /dev/null +++ b/ports-legacy/arctican-pilgrim/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/PluginParameter.cpp', + 'source/PluginProcessor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/BackgroundImage.cpp', + 'source/PluginEditor.cpp', + 'source/PluginParameter.cpp', + 'source/PluginProcessor.cpp', + 'source/Knob.cpp', + 'source/KnobsBI.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'ThePilgrim' + +############################################################################### diff --git a/ports-legacy/dexed/meson.build b/ports-legacy/dexed/meson.build new file mode 100644 index 00000000..c9c29502 --- /dev/null +++ b/ports-legacy/dexed/meson.build @@ -0,0 +1,35 @@ +############################################################################### + +plugin_srcs = files([ + 'source/AlgoDisplay.cpp', + 'source/BinaryData.cpp', + 'source/CartManager.cpp', + 'source/DXComponents.cpp', + 'source/DXLookNFeel.cpp', + 'source/EngineMkI.cpp', + 'source/EngineOpl.cpp', + 'source/GlobalEditor.cpp', + 'source/OperatorEditor.cpp', + 'source/ParamDialog.cpp', + 'source/PluginData.cpp', + 'source/PluginEditor.cpp', + 'source/PluginFx.cpp', + 'source/PluginParam.cpp', + 'source/PluginProcessor.cpp', + 'source/ProgramListBox.cpp', + 'source/SysexComm.cpp', + 'source/msfa/dx7note.cc', + 'source/msfa/env.cc', + 'source/msfa/exp2.cc', + 'source/msfa/fm_core.cc', + 'source/msfa/fm_op_kernel.cc', + 'source/msfa/freqlut.cc', + 'source/msfa/lfo.cc', + 'source/msfa/pitchenv.cc', + 'source/msfa/sin.cc', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'Dexed' + +############################################################################### diff --git a/ports-legacy/drowaudio-distortion/meson.build b/ports-legacy/drowaudio-distortion/meson.build new file mode 100644 index 00000000..4126383d --- /dev/null +++ b/ports-legacy/drowaudio-distortion/meson.build @@ -0,0 +1,24 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/DRowAudioFilter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/DRowAudioEditorComponent.cpp', + 'source/DRowAudioFilter.cpp', + '../drowaudio-common/dRowAudio_PluginLookAndFeel.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'drowaudio-distortion' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio +plugin_extra_include_dirs = include_directories([ + '../drowaudio-common', +]) + +############################################################################### diff --git a/ports-legacy/drowaudio-distortionshaper/meson.build b/ports-legacy/drowaudio-distortionshaper/meson.build new file mode 100644 index 00000000..013a2b32 --- /dev/null +++ b/ports-legacy/drowaudio-distortionshaper/meson.build @@ -0,0 +1,25 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/DRowAudioFilter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/DRowAudioEditorComponent.cpp', + 'source/DRowAudioFilter.cpp', + 'source/GraphComponent.cpp', + '../drowaudio-common/dRowAudio_PluginLookAndFeel.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'drowaudio-distortionshaper' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio +plugin_extra_include_dirs = include_directories([ + '../drowaudio-common', +]) + +############################################################################### diff --git a/ports-legacy/drowaudio-flanger/meson.build b/ports-legacy/drowaudio-flanger/meson.build new file mode 100644 index 00000000..200aef81 --- /dev/null +++ b/ports-legacy/drowaudio-flanger/meson.build @@ -0,0 +1,24 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/DRowAudioFilter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/DRowAudioEditorComponent.cpp', + 'source/DRowAudioFilter.cpp', + '../drowaudio-common/dRowAudio_PluginLookAndFeel.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'drowaudio-flanger' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio +plugin_extra_include_dirs = include_directories([ + '../drowaudio-common', +]) + +############################################################################### diff --git a/ports-legacy/drowaudio-reverb/meson.build b/ports-legacy/drowaudio-reverb/meson.build new file mode 100644 index 00000000..e2511ae4 --- /dev/null +++ b/ports-legacy/drowaudio-reverb/meson.build @@ -0,0 +1,32 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/DRowAudioFilter.cpp', + '../drowaudio-common/dRowAudio_AllpassFilter.cpp', + '../drowaudio-common/dRowAudio_DelayRegister.cpp', + '../drowaudio-common/dRowAudio_LBCF.cpp', + '../drowaudio-common/dRowAudio_TappedDelayLine.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/DRowAudioEditorComponent.cpp', + 'source/DRowAudioFilter.cpp', + '../drowaudio-common/dRowAudio_AllpassFilter.cpp', + '../drowaudio-common/dRowAudio_DelayRegister.cpp', + '../drowaudio-common/dRowAudio_LBCF.cpp', + '../drowaudio-common/dRowAudio_PluginLookAndFeel.cpp', + '../drowaudio-common/dRowAudio_TappedDelayLine.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'drowaudio-reverb' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio +plugin_extra_include_dirs = include_directories([ + '../drowaudio-common', +]) + +############################################################################### diff --git a/ports-legacy/drowaudio-tremolo/meson.build b/ports-legacy/drowaudio-tremolo/meson.build new file mode 100644 index 00000000..7915f036 --- /dev/null +++ b/ports-legacy/drowaudio-tremolo/meson.build @@ -0,0 +1,25 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/PluginProcessor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/PluginEditor.cpp', + 'source/PluginLookAndFeel.cpp', + 'source/PluginProcessor.cpp', + 'source/TremoloBufferView.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'drowaudio-tremolo' +plugin_uses_drowaudio = true +plugin_extra_build_flags = build_flags_drowaudio +plugin_extra_include_dirs = include_directories([ + '../drowaudio-common', +]) + +############################################################################### diff --git a/ports-legacy/drumsynth/meson.build b/ports-legacy/drumsynth/meson.build new file mode 100644 index 00000000..1d1f7f8b --- /dev/null +++ b/ports-legacy/drumsynth/meson.build @@ -0,0 +1,20 @@ +############################################################################### + +plugin_srcs = files([ + 'source/DrumSynthComponent.cpp', + 'source/DrumSynthPlugin.cpp', + 'source/Components/DrumSynthEnvelope.cpp', + 'source/Components/DrumSynthKeyboard.cpp', + 'source/Components/DrumSynthMain.cpp', + 'source/DrumSynth/drumsynth.cpp', + 'source/IniParser/dictionary.cpp', + 'source/IniParser/iniparser.cpp', + 'source/Resources/DrumSynthResources.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'drumsynth' +plugin_uses_juced = true +plugin_extra_build_flags = build_flags_juced + +############################################################################### diff --git a/ports-legacy/easySSP/meson.build b/ports-legacy/easySSP/meson.build new file mode 100644 index 00000000..4593b6c0 --- /dev/null +++ b/ports-legacy/easySSP/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +plugin_srcs = files([ + 'source/AboutLayout.cpp', + 'source/BinaryData.cpp', + 'source/MainLayout.cpp', + 'source/PluginProcessor.cpp', + 'source/PreferencesLayout.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'EasySSP' + +# FIX GCC9 compiler bug, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90006 +plugin_extra_build_flags = [ + '-fno-tree-slp-vectorize', +] + +plugin_extra_include_dirs = include_directories([ + 'source/dsp-utility', +]) + +############################################################################### diff --git a/ports-legacy/eqinox/meson.build b/ports-legacy/eqinox/meson.build new file mode 100644 index 00000000..2f1d3f6c --- /dev/null +++ b/ports-legacy/eqinox/meson.build @@ -0,0 +1,20 @@ +############################################################################### + +plugin_srcs = files([ + 'source/XEQComponent.cpp', + 'source/XEQPlugin.cpp', + 'source/Components/XEQAbout.cpp', + 'source/Components/XEQGraph.cpp', + 'source/Components/XEQMain.cpp', + 'source/Components/XEQTabPanel.cpp', + 'source/Filters/jucetice_AnalogFilter.cpp', + 'source/Filters/jucetice_EQ.cpp', + 'source/Filters/jucetice_Limiter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'eqinox' +plugin_uses_juced = true +plugin_extra_build_flags = build_flags_juced + +############################################################################### diff --git a/ports-legacy/juce-opl/meson.build b/ports-legacy/juce-opl/meson.build new file mode 100644 index 00000000..ec97265c --- /dev/null +++ b/ports-legacy/juce-opl/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +plugin_srcs = files([ + 'source/ChannelButtonLookAndFeel.cpp', + 'source/DROMultiplexer.cpp', + 'source/EnumFloatParameter.cpp', + 'source/FloatParameter.cpp', + 'source/IntFloatParameter.cpp', + 'source/OPLLookAndFeel.cpp', + 'source/PluginGui.cpp', + 'source/PluginProcessor.cpp', + 'source/SbiLoader.cpp', + 'source/dbopl.cpp', + 'source/hiopl.cpp', + 'source/nkopl3.cpp', + 'source/tests.cpp', + 'source/zdopl.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'JuceOPL' + +############################################################################### diff --git a/ports-legacy/klangfalter/meson.build b/ports-legacy/klangfalter/meson.build new file mode 100644 index 00000000..06b46ad7 --- /dev/null +++ b/ports-legacy/klangfalter/meson.build @@ -0,0 +1,34 @@ +############################################################################### + +plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/ChangeNotifier.cpp', + 'source/Convolver.cpp', + 'source/CookbookEq.cpp', + 'source/Envelope.cpp', + 'source/IRAgent.cpp', + 'source/IRCalculation.cpp', + 'source/LevelMeasurement.cpp', + 'source/Parameters.cpp', + 'source/Persistence.cpp', + 'source/Processor.cpp', + 'source/Settings.cpp', + 'source/StereoWidth.cpp', + 'source/FFTConvolver/AudioFFT.cpp', + 'source/FFTConvolver/FFTConvolver.cpp', + 'source/FFTConvolver/TwoStageFFTConvolver.cpp', + 'source/FFTConvolver/Utilities.cpp', + 'source/UI/CustomLookAndFeel.cpp', + 'source/UI/DecibelScale.cpp', + 'source/UI/IRBrowserComponent.cpp', + 'source/UI/IRComponent.cpp', + 'source/UI/KlangFalterEditor.cpp', + 'source/UI/LevelMeter.cpp', + 'source/UI/SettingsDialogComponent.cpp', + 'source/UI/WaveformComponent.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'KlangFalter' + +############################################################################### diff --git a/ports-legacy/luftikus/meson.build b/ports-legacy/luftikus/meson.build new file mode 100644 index 00000000..2fdc522e --- /dev/null +++ b/ports-legacy/luftikus/meson.build @@ -0,0 +1,22 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/PluginProcessor.cpp', + 'source/dsp/eqdsp.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/GuiLookAndFeel.cpp', + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/dsp/eqdsp.cpp', + 'source/gui2/BinaryData.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'Luftikus' + +############################################################################### diff --git a/ports-legacy/meson.build b/ports-legacy/meson.build new file mode 100644 index 00000000..d00f2d9c --- /dev/null +++ b/ports-legacy/meson.build @@ -0,0 +1,244 @@ +############################################################################### + +if linux_embed + plugins = [ + 'arctican-function', + 'arctican-pilgrim', + 'drowaudio-distortion', + 'drowaudio-distortionshaper', + 'drowaudio-flanger', + 'drowaudio-reverb', + 'drowaudio-tremolo', + 'luftikus', + 'obxd', + 'tal-dub-3', + 'tal-filter', + 'tal-filter-2', + 'tal-noisemaker', + 'tal-reverb', + 'tal-reverb-2', + 'tal-reverb-3', + 'tal-vocoder-2', + 'temper', + 'vex', + 'wolpertinger', + ] +else + plugins = [ + 'arctican-function', + 'arctican-pilgrim', + 'dexed', + 'drowaudio-distortion', + 'drowaudio-distortionshaper', + 'drowaudio-flanger', + 'drowaudio-reverb', + 'drowaudio-tremolo', + 'drumsynth', + 'easySSP', + 'eqinox', + 'HiReSam', + 'juce-opl', + 'klangfalter', + 'LUFSMeter', + 'LUFSMeter-Multi', + 'luftikus', + 'obxd', + 'pitchedDelay', + 'refine', + 'stereosourceseparation', + 'tal-dub-3', + 'tal-filter', + 'tal-filter-2', + 'tal-noisemaker', + 'tal-reverb', + 'tal-reverb-2', + 'tal-reverb-3', + 'tal-vocoder-2', + 'temper', + 'vex', + 'wolpertinger', + ] +endif + +plugin_include_dirs = [ + '../../libs/drowaudio/source', + '../../libs/juced/source', + '../../libs/juce-legacy', + '../../libs/juce-legacy/source', + '../../libs/juce-legacy/source/modules', + '../../libs/juce-plugin', + '../../libs/juce-plugin/juce-legacy', +] + +############################################################################### +# dependencies + +dependencies_plugin = [ +] + +if os_windows + dependencies_plugin += [ + cc.find_library('comdlg32'), + cc.find_library('gdi32'), + cc.find_library('imm32'), + cc.find_library('ole32'), + cc.find_library('oleaut32'), + cc.find_library('shlwapi'), + cc.find_library('uuid'), + cc.find_library('version'), + cc.find_library('winmm'), + cc.find_library('wininet'), + cc.find_library('ws2_32'), + ] +endif + +############################################################################### +# build flags for plugins + +build_flags_plugin = [ + '-Werror=deprecated-declarations', +] + +build_flags_plugin_debug = [ +] + +build_flags_plugin_release = [ + '-ffast-math', +] + +if optimizations and not linux_embed + build_flags_plugin_release += [ + '-mfpmath=sse', + ] +endif + +############################################################################### +# link flags for plugins + +link_flags_plugin = [ +] + +if not os_darwin + link_flags_plugin += [ + '-Wl,--version-script=../scripts/plugin-symbols.version', + ] +endif + +if os_darwin + link_flags_plugin += [ + '-framework Accelerate', + '-framework AudioToolbox', + '-framework AudioUnit', + '-framework Carbon', + '-framework Cocoa', + '-framework CoreAudio', + '-framework CoreAudioKit', + '-framework CoreMIDI', + '-framework IOKit', + '-framework QuartzCore', + '-framework WebKit', + ] +endif + +############################################################################### +# combine flags depending on build type + +if buildtype == 'debug' + build_flags_plugin += build_flags_plugin_debug +else + build_flags_plugin += build_flags_plugin_release +endif + +############################################################################### +# format-specific flags + +build_flags_plugin_lv2 = [ + '-DJucePlugin_Build_AU=0', + '-DJucePlugin_Build_LV2=1', + '-DJucePlugin_Build_RTAS=0', + '-DJucePlugin_Build_VST=0', + '-DJucePlugin_Build_Standalone=0', + '-DBINTYPE=@0@LV2'.format(bintype_prefix), +] + +build_flags_plugin_vst2 = [ + '-DJucePlugin_Build_AU=0', + '-DJucePlugin_Build_LV2=0', + '-DJucePlugin_Build_RTAS=0', + '-DJucePlugin_Build_VST=1', + '-DJucePlugin_Build_Standalone=0', + '-DBINTYPE=@0@VST2'.format(bintype_prefix), + '-Wno-write-strings', +] + +############################################################################### + +build_flags_drowaudio = [ + '-DUSE_DROWAUDIO=1', +] + +build_flags_juced = [ + '-DUSE_JUCED=1', +] + +############################################################################### + +foreach plugin : plugins + plugin_uses_drowaudio = false + plugin_uses_juced = false + plugin_uses_opengl = false + plugin_extra_dependencies = [] + plugin_extra_include_dirs = [] + plugin_extra_build_flags = [] + plugin_extra_link_flags = [] + subdir(plugin) + + link_with_plugin = [ + lib_juce_legacy + ] + + if plugin_uses_drowaudio + link_with_plugin += lib_drowaudio + endif + + if plugin_uses_juced + link_with_plugin += lib_juced + endif + + 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 + + if build_vst2 + plugin_vst2_lib = shared_library(plugin_name, + 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_vst2 + plugin_extra_build_flags, + cpp_args: build_flags_cpp + build_flags_plugin + build_flags_plugin_vst2 + 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: vst2dir, + ) + endif +endforeach + +############################################################################### diff --git a/ports-legacy/obxd/meson.build b/ports-legacy/obxd/meson.build new file mode 100644 index 00000000..c82c24b9 --- /dev/null +++ b/ports-legacy/obxd/meson.build @@ -0,0 +1,19 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/PluginProcessor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/Gui/BinaryData.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'Obxd' + +############################################################################### diff --git a/ports-legacy/pitchedDelay/meson.build b/ports-legacy/pitchedDelay/meson.build new file mode 100644 index 00000000..e80e5b83 --- /dev/null +++ b/ports-legacy/pitchedDelay/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/dsp/BandLimit.cpp', + 'source/dsp/delaytabdsp.cpp', + 'source/dsp/pitcheddelay.cpp', + 'source/dsp/simpledetune.cpp', + 'source/gui/DelayGraph.cpp', + 'source/gui/pitcheddelaytab.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'PitchedDelay' + +############################################################################### diff --git a/ports-legacy/refine/meson.build b/ports-legacy/refine/meson.build new file mode 100644 index 00000000..2c292a27 --- /dev/null +++ b/ports-legacy/refine/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +plugin_srcs = files([ + 'source/Analyzer.cpp', + 'source/BinaryData.cpp', + 'source/Buffers.cpp', + 'source/MiscDsp.cpp', + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/ReFineLookAndFeel.cpp', + 'source/RefineDsp.cpp', + 'source/Visualisation.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'ReFine' + +############################################################################### diff --git a/ports-legacy/stereosourceseparation/meson.build b/ports-legacy/stereosourceseparation/meson.build new file mode 100644 index 00000000..f3dce9fe --- /dev/null +++ b/ports-legacy/stereosourceseparation/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +plugin_srcs = files([ + 'source/ADRess.cpp', + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/kiss_fft/kiss_fft.c', + 'source/kiss_fft/kiss_fftr.c', + '../../libs/juce-plugin/JucePluginMain.cpp', +]) + +plugin_name = 'StereoSourceSeparation' + +plugin_extra_include_dirs = include_directories([ + 'source/kiss_fft', +]) + +############################################################################### diff --git a/ports-legacy/tal-dub-3/meson.build b/ports-legacy/tal-dub-3/meson.build new file mode 100644 index 00000000..5fffcb85 --- /dev/null +++ b/ports-legacy/tal-dub-3/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Dub-3' + +############################################################################### diff --git a/ports-legacy/tal-filter-2/meson.build b/ports-legacy/tal-filter-2/meson.build new file mode 100644 index 00000000..6ba22c99 --- /dev/null +++ b/ports-legacy/tal-filter-2/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Filter-2' + +############################################################################### diff --git a/ports-legacy/tal-filter/meson.build b/ports-legacy/tal-filter/meson.build new file mode 100644 index 00000000..5fd78160 --- /dev/null +++ b/ports-legacy/tal-filter/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + 'source/Engine/Lfo.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + 'source/Engine/Lfo.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Filter' +plugin_extra_include_dirs = include_directories([ + 'source/Engine', +]) + +############################################################################### diff --git a/ports-legacy/tal-noisemaker/meson.build b/ports-legacy/tal-noisemaker/meson.build new file mode 100644 index 00000000..e1ead30f --- /dev/null +++ b/ports-legacy/tal-noisemaker/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + 'source/Engine/Lfo.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + 'source/Engine/Lfo.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-NoiseMaker' +plugin_extra_include_dirs = include_directories([ + 'source/Engine', +]) + +############################################################################### diff --git a/ports-legacy/tal-reverb-2/meson.build b/ports-legacy/tal-reverb-2/meson.build new file mode 100644 index 00000000..69b9c1b3 --- /dev/null +++ b/ports-legacy/tal-reverb-2/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Reverb-2' + +############################################################################### diff --git a/ports-legacy/tal-reverb-3/meson.build b/ports-legacy/tal-reverb-3/meson.build new file mode 100644 index 00000000..1d693994 --- /dev/null +++ b/ports-legacy/tal-reverb-3/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Reverb-3' + +############################################################################### diff --git a/ports-legacy/tal-reverb/meson.build b/ports-legacy/tal-reverb/meson.build new file mode 100644 index 00000000..a50d2375 --- /dev/null +++ b/ports-legacy/tal-reverb/meson.build @@ -0,0 +1,18 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalCore.cpp', + 'source/ReverbComponent.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Reverb' + +############################################################################### diff --git a/ports-legacy/tal-vocoder-2/meson.build b/ports-legacy/tal-vocoder-2/meson.build new file mode 100644 index 00000000..3264e90e --- /dev/null +++ b/ports-legacy/tal-vocoder-2/meson.build @@ -0,0 +1,23 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/TalCore.cpp', + 'source/engine/vocoder/Fft.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/TalComponent.cpp', + 'source/TalCore.cpp', + 'source/engine/vocoder/Fft.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'TAL-Vocoder-2' +plugin_extra_include_dirs = include_directories([ + 'source/engine', +]) + +############################################################################### diff --git a/ports-legacy/temper/meson.build b/ports-legacy/temper/meson.build new file mode 100644 index 00000000..efb5c27b --- /dev/null +++ b/ports-legacy/temper/meson.build @@ -0,0 +1,27 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/FaustUIBridge.cpp', + 'source/BinaryData.cpp', + 'source/PluginProcessor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/BinaryData.cpp', + 'source/FaustUIBridge.cpp', + 'source/MainComponent.cpp', + 'source/PluginEditor.cpp', + 'source/PluginProcessor.cpp', + 'source/RestrictionProcessor.cpp', + 'source/SpectroscopeComponent.cpp', + 'source/TemperLookAndFeel.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'Temper' +plugin_uses_opengl = true + +############################################################################### diff --git a/ports-legacy/vex/meson.build b/ports-legacy/vex/meson.build new file mode 100644 index 00000000..70922170 --- /dev/null +++ b/ports-legacy/vex/meson.build @@ -0,0 +1,20 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/Vex-src.cpp', + 'source/VexFilter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/Vex-src.cpp', + 'source/VexEditorComponent.cpp', + 'source/VexFilter.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'Vex' + +############################################################################### diff --git a/ports-legacy/wolpertinger/meson.build b/ports-legacy/wolpertinger/meson.build new file mode 100644 index 00000000..215c0663 --- /dev/null +++ b/ports-legacy/wolpertinger/meson.build @@ -0,0 +1,40 @@ +############################################################################### + +if linux_embed + plugin_srcs = files([ + 'source/ADSRenv.cpp', + 'source/synth.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +else + plugin_srcs = files([ + 'source/ADSRenv.cpp', + 'source/KeyboardButton.cpp', + 'source/PresetComboBox.cpp', + 'source/RotatingToggleButton.cpp', + 'source/about.cpp', + 'source/editor.cpp', + 'source/synth.cpp', + 'source/tabbed-editor.cpp', + '../../libs/juce-plugin/JucePluginMain.cpp', + ]) +endif + +plugin_name = 'Wolpertinger' + +plugin_extra_build_flags = [ + '-DWOLPVERSION=0041', + '-DWOLPVERSIONSTRING=0.4.1', +] + +if buildtype == 'debug' + plugin_extra_build_flags += [ + '-DCONFIGURATION=Debug', + ] +else + plugin_extra_build_flags += [ + '-DCONFIGURATION=Release', + ] +endif + +############################################################################### diff --git a/ports-legacy/wolpertinger/source/about.cpp b/ports-legacy/wolpertinger/source/about.cpp index 3c1afdff..8677c9c8 100644 --- a/ports-legacy/wolpertinger/source/about.cpp +++ b/ports-legacy/wolpertinger/source/about.cpp @@ -71,7 +71,6 @@ about::about () #define tostring(x) #x //#define stringify(x) tostring(x) String buildinfo= String(T("v")) + T(stringify(WOLPVERSIONSTRING)) + T("\n") + - T("Build Date ") + T(stringify(BUILDDATE)) + T("\n") + T(stringify(BINTYPE)) + T(", ") + T(stringify(CONFIGURATION)); label2->setText(buildinfo, dontSendNotification); //[/Constructor] diff --git a/scripts/plugin-symbols.version b/scripts/plugin-symbols.version new file mode 100644 index 00000000..b719ba39 --- /dev/null +++ b/scripts/plugin-symbols.version @@ -0,0 +1,4 @@ +{ + global: VSTPluginMain; + local: *; +};