wolf-plugins / wolf-shaper

Waveshaper plugin with a spline-based graph editor (LV2, VST, and CLAP)
https://wolf-plugins.github.io/wolf-shaper/
GNU General Public License v3.0
215 stars 18 forks source link

The VST3 plugin fails to build #159

Open yurivict opened 1 year ago

yurivict commented 1 year ago

When BUILD_VST3=true is added it fails:

Compiling DistrhoPluginMain.cpp (JACK)
Compiling DistrhoUIMain.cpp (JACK)
Compiling DistrhoPluginMain.cpp (DSSI)
Compiling DistrhoUIMain.cpp (DSSI)
Creating LV2 plugin library for wolf-shaper
Creating LV2 plugin UI for wolf-shaper
Creating VST2 plugin for wolf-shaper
Creating CLAP plugin for wolf-shaper
Creating JACK standalone for wolf-shaper
Creating DSSI plugin library for wolf-shaper
Creating DSSI UI for wolf-shaper
gmake[3]: Leaving directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/src'
Generate ttl data for 'wolf-shaper_dsp', basename: 'wolf-shaper_dsp'
Writing manifest.ttl... done!
Writing wolf-shaper_dsp.ttl... done!
Writing wolf-shaper_ui.ttl... done!
gmake[2]: Leaving directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5'
===>  Staging for wolf-shaper-1.0.0.6
===>   wolf-shaper-1.0.0.6 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===>   wolf-shaper-1.0.0.6 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===>   wolf-shaper-1.0.0.6 depends on file: /usr/local/libdata/pkgconfig/xrandr.pc - found
===>   Generating temporary packing list
gmake[2]: Entering directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5'
gmake -C dpf/dgl opengl
gmake[3]: Entering directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/dpf/dgl'
gmake[3]: Nothing to be done for 'opengl'.
gmake[3]: Leaving directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/dpf/dgl'
gmake all -C src
gmake[3]: Entering directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/src'
gmake[3]: Nothing to be done for 'all'.
gmake[3]: Leaving directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/src'
Generate ttl data for 'wolf-shaper_dsp', basename: 'wolf-shaper_dsp'
Writing manifest.ttl... done!
Writing wolf-shaper_dsp.ttl... done!
Writing wolf-shaper_ui.ttl... done!
gmake install -C src
gmake[3]: Entering directory '/usr/ports/audio/wolf-shaper-lv2/work/wolf-shaper-1.0.0-6-g4c8edd5/src'
cp: ../bin/wolf-shaper.vst3: No such file or directory
pdesaulniers commented 1 year ago

Thanks, I can reproduce the issue on FreeBSD.

It seems like DPF does not define a name for VST3 builds on Unix-like systems besides Linux and MacOS : https://github.com/DISTRHO/DPF/blob/22413340a6d8ef2ffbf38ce841fb44c448a1a84a/Makefile.plugins.mk#L224-L240

To fix the issue, I suppose we can add the following code (or similar):

else ifeq ($(UNIX),true)
VST3_FILENAME = $(NAME).vst3/Contents/$(TARGET_PROCESSOR)-unix/$(NAME).so 
pdesaulniers commented 1 year ago

I've just been told about this issue: https://github.com/steinbergmedia/vst3sdk/issues/86

Before we can ship VST3 builds on FreeBSD, the VST3 spec needs to define which naming convention to use on systems other than Windows/Mac/Linux...

In the meantime, you are free to implement some temporary workarounds (such as patching Makefile.plugins.mk with my snippet above), but it may cause some issues down the line.