Signed-off-by: falkTX <falktx@falktx.com>tags/2020-07-14
@@ -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, | |||
) | |||
@@ -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, | |||
) | |||
@@ -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, | |||
) | |||
@@ -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') | |||
############################################################################### |
@@ -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', | |||
) |
@@ -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 | |||
############################################################################### |
@@ -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', | |||
] | |||
############################################################################### |
@@ -0,0 +1 @@ | |||
../LUFSMeter/source/ |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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 | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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 | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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 | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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', | |||
]) | |||
############################################################################### |
@@ -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 | |||
############################################################################### |
@@ -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' | |||
############################################################################### |
@@ -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 | |||
############################################################################### |
@@ -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] | |||
@@ -0,0 +1,4 @@ | |||
{ | |||
global: VSTPluginMain; | |||
local: *; | |||
}; |