michaelwillis / dragonfly-reverb

A set of free reverb effects
https://michaelwillis.github.io/dragonfly-reverb
GNU General Public License v3.0
918 stars 69 forks source link

3.2.6: Build issues #129

Open dvzrv opened 2 years ago

dvzrv commented 2 years ago

Hi! When building 3.2.6 as a package for Arch Linux I ran into issues:

Compiling DistrhoUIMain.cpp (VST3)
In file included from ../../common/freeverb/progenitor.hpp:50,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from DSP.cpp:19:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
In file included from ../../common/freeverb/progenitor.hpp:56,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from DSP.cpp:19:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
In file included from ../../common/freeverb/progenitor.hpp:50,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from Plugin.hpp:19,
                 from Plugin.cpp:17:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
In file included from ../../common/freeverb/progenitor.hpp:56,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from Plugin.hpp:19,
                 from Plugin.cpp:17:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
make[1]: *** [../../dpf/Makefile.plugins.mk:312: ../../build/DragonflyRoomReverb/DSP.cpp.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [../../dpf/Makefile.plugins.mk:312: ../../build/DragonflyRoomReverb/Plugin.cpp.o] Error 1
In file included from ../../common/freeverb/progenitor.hpp:50,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from UI.cpp:19:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
In file included from ../../common/freeverb/progenitor.hpp:56,
                 from ../../common/freeverb/progenitor2.hpp:25,
                 from DSP.hpp:22,
                 from UI.cpp:19:
../../common/freeverb/progenitor_t.hpp:23:1: error: expected class-name before ‘{’ token
   23 | {
      | ^
make[1]: *** [../../dpf/Makefile.plugins.mk:310: ../../build/DragonflyRoomReverb/UI.cpp.o] Error 1
make[1]: Leaving directory '/build/dragonfly-reverb/src/DragonflyReverb-Source-v3.2.6/plugins/dragonfly-room-reverb'
make: *** [Makefile:24: plugins] Error 2
make: Leaving directory '/build/dragonfly-reverb/src/DragonflyReverb-Source-v3.2.6'

This looks freeverb related and I am using SYSTEM_FREEVERB3="true". Maybe it is not honored in some parts of the build?

dvzrv commented 2 years ago

After explicitly removing the common/freeverb directory before build, I am able to build successfully.

michaelwillis commented 2 years ago

@dvzrv Thanks for reporting this, I'll see what I can do about a fix for the next version.

michaelwillis commented 2 years ago

@dvzrv Is anybody maintaining the system freeverb3 package? If not, it might be better to build against the bundled freeverb3.

dvzrv commented 2 years ago

The package for Arch is maintained by me. However, the upstream is here: http://www.nongnu.org/freeverb3/

Judging from its history I don't see a lot of activity in the past years though: http://git.savannah.gnu.org/cgit/freeverb3.git Not sure whether that will change or not, but given that those are the sources you are using, what would be the upside to using the bundled sources you provide with dragonfly-reverb?

michaelwillis commented 2 years ago

Sometimes I consider modernizing the freeverb3 library that is bundled with Dragonfly Reverb, doing things like finding a better way to avoid issues with denormals and such. I hesitate to diverge from the version at savannah.gnu.org because I know that some people build using the SYSTEM_FREEVERB3 env var, but if I didn't have to support that, it would give more freedom to optimize the bundled library.

dvzrv commented 2 years ago

Sometimes I consider modernizing the freeverb3 library that is bundled with Dragonfly Reverb, [..]

Then these changes should be upstreamed IMHO, so that others also benefit from it. Have you reached out to the current freeverb3 upstream about these changes?

michaelwillis commented 2 years ago

The freeverb3 maintainer didn't write me back the last time I wrote, but I can try again.

muziker commented 2 years ago

I'd love there to be an optimized bundled freeverb3 just for dragonfly reverb. Disk space is relatively cheap, plus I can see what is being optimized.

michaelwillis commented 2 years ago

@dvzrv Are there other arch packages that depend upon freeverb3?

dvzrv commented 2 years ago

Sorry for the late reply: Nope, not currently.

michaelwillis commented 2 years ago

@dvzrv I think this will still be a problem with 3.2.7, as I am not currently set up to test a build on Arch Linux against the system freeverb3 library.