Since this would only be needed for distribution, and we're already
doing something similar for libstdc++ on the Ubuntu 18.04 build. This
moves the static linking behind a new build option.
Now that Ubuntu 20.04 is out every currently supported distro that's not
based on Ubuntu 18.04 is shipping GCC 10, so we can start using some
C++20 features. Ubuntu 18.04 already needed a newer version of GCC
installed through a PPA and a newer version of Boost to compile
yabridge, so requiring GCC 10 shouldn't be an issue.
This cleans up the PluginBridge significantly by getting rid of all
fields and handling that was only needed for connecting to plugin
groups. This was also the last thing I wanted to refactor before
releasing the plugin groups feature with yabridge 1.2.
This will also cause the 64-bit version of the library to be picked up
on any distro that's not based on Fedora, which may cause some confusing
problems.
Is there a right way to do this? Meson doesn't allow you to override the
library search path for part of the build, and it also can't
differentiate between 32-bit and 64-bit libraries by default.
This reverts commit e728dbe5a2.
`std::filesystem` is broken on wineg++, at least with Wine 5.8. Any path
operations will throw a `std::filesystem::__cxx11::filesystem_error`:
what(): filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character
Somehow the Ubuntu 20.04 build just did this without being told, but the
Ubuntu 18.04 build did not. With the static link option Meson will by
default only search under /usr/lib, so for our CI builds we need to
explicitly tell it to also search under /usr/local/lib since that's
where we manually installed Boost 1.72.
As mentioned in the last commit. The original reasoning behind these
names was that the HostBridge talks to the host, and the PluginBridge
talks to the plugin, but you could also argue that the HostBridge should
be part of the Wine VST host and the PluginBridge should be part of the
VST plugin. This removes that ambiguity.
I had swapped these names around once before but I think going with
PluginBridge for the plugin and WineBridge for the Wine VST host is the
least ambiguous it can get.
Easier than to implement C-style arrays in Bitsery and this way we also
don't have to worry about cleanup.
Serum still segfaults with multiple events so something is still off.