Remove all references to Boost

Since we no longer depend on any of it.
This commit is contained in:
Robbert van der Helm
2022-04-15 15:25:03 +02:00
parent 7b3afa4043
commit 88ac466501
7 changed files with 16 additions and 29 deletions
+7 -5
View File
@@ -10,11 +10,12 @@ Versioning](https://semver.org/spec/v2.0.0.html).
### Changed
- Almost the entirety of yabridge's backend has had a rewrite to get rid of any
all dependencies on the Boost libraries to make packaging easier and to remove
the runtime dependency on Boost.Filesystem for distro packaged versions of
yabridge. This prevents yabridge from breaking when Boost gets updated
independently of the yabridge package.
- Almost the entirety of yabridge's backend has been rewritten to get rid of all
dependencies on the Boost libraries to make packaging yabridge for distros
easier and to make distro packaged versions of yabridge more reliable. This
gets rid of the runtime dependency on Boost.Filesystem for those builds, and
it also makes compiling slightly faster and the binaries slightly smaller.
Before this, yabridge would need to be rebuilt whenever Boost got updated.
- When mapping shared memory for audio and the user does not have permissions to
lock the memory, yabridge will now retry mapping the memory without locking it
instead of immediately terminating the process. An annoying desktop
@@ -35,6 +36,7 @@ Versioning](https://semver.org/spec/v2.0.0.html).
### Packaging notes
- Completely removed the dependency on all Boost libraries.
- Added a dependency on the headers-only
[`ghc::filesystem`](https://github.com/gulrak/filesystem) library to replace
Boost.Filesystem.
+4 -5
View File
@@ -765,7 +765,6 @@ the following dependencies:
- A Wine installation with `winegcc` and the development headers. The latest
commits contain a workaround for a winelib [compilation
issue](https://bugs.winehq.org/show_bug.cgi?id=49138) with Wine 5.7+.
- Boost version 1.66 or higher[\*](#building-ubuntu-18.04)
- libxcb
The following dependencies are included in the repository as a Meson wrap:
@@ -793,9 +792,9 @@ After you've finished building you can follow the instructions under the
[usage](#usage) section on how to set up yabridge.
<sup id="building-ubuntu-18.04">
*The versions of GCC and Boost that ship with Ubuntu 18.04 by default are too
old to compile yabridge. If you do wish to build yabridge from scratch rather
than using the <a
*The version of GCC that ships with Ubuntu 18.04 by default is too old to
compile yabridge. If you do wish to build yabridge from scratch rather than
using the <a
href="https://github.com/robbert-vdh/yabridge/actions?query=workflow%3A%22Automated+builds%22+branch%3Amaster">prebuilt
binaries</a>, then you should take a look at the <a
href="https://github.com/robbert-vdh/docker-yabridge/blob/master/bionic/Dockerfile">docker
@@ -809,7 +808,7 @@ It is also possible to compile a host application for yabridge that's compatible
with 32-bit plugins such as old SynthEdit plugins. This will allow yabridge to
act as a bitbridge, allowing you to run old 32-bit only Windows VST2 plugins in
a modern 64-bit Linux VST host. For this you'll need to have installed the 32
bit versions of the Boost and XCB libraries. This can then be set up as follows:
bit versions of the XCB library. This can then be set up as follows:
```shell
# Enable the bitbridge on an existing build
-6
View File
@@ -34,12 +34,6 @@ page lists some of those.
files from smaller stub libraries. This would avoid having to rerun
`yabridgectl sync` after an upgrade, and it would save disk space on systems
without support for reflinks.
- Consider replacing Boost.Asio with the standalone Asio library,
Boost.Filesystem with a similar headers only library (as `std::filesystem`
doesn't work under `wineg++`) and all other components with custom wrappers
around Linux and Windows APIs. Getting rid of the Boost.Filesystem dependency
would be nice as it makes packaging easier, but it would require a lot of work
to make it happen.
# Somewhere in the future, possibly
+3 -3
View File
@@ -61,9 +61,9 @@ interacts with the Win32 message loop or the GUI has to be done from the same
thread (or typically the main thread). To do this yabridge will execute certain
'unsafe' functions that are likely to interact with these things from the main
thread. The main thread also periodically handles Win32 and optionally also X11
events (when there are open editors) using a Boost.Asio timer, so these function
calls can all be done from that same thread by posting a task to the Boost.Asio
IO context.
events (when there are open editors) using an Asio timer, so these function
calls can all be done from that same thread by posting a task to the Asio IO
context.
On the native Linux side it usually doesn't matter which thread functions are
called from, but since REAPER does not allow any function calls that interact
-4
View File
@@ -183,8 +183,6 @@ endif
# and 64-bit versions
asio_dep = dependency('asio', version : '>=1.22.0')
# TODO: Get rid of the last Boost bits and pieces
boost_dep = dependency('boost', version : '>=1.66')
if meson.version().version_compare('>=0.60')
# Bitsery's CMake build definition is capitalized for some reason
bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0')
@@ -248,7 +246,6 @@ shared_library(
configuration_dep,
asio_dep,
boost_dep,
bitsery_dep,
dl_dep,
ghc_filesystem_dep,
@@ -271,7 +268,6 @@ if with_vst3
configuration_dep,
asio_dep,
boost_dep,
bitsery_dep,
dl_dep,
function2_dep,
+2 -4
View File
@@ -188,8 +188,7 @@ class Vst2Bridge : public HostBridge {
#pragma GCC diagnostic ignored "-Wignored-attributes"
/**
* The shared library handle of the VST plugin. I sadly could not get
* Boost.DLL to work here, so we'll just load the VST plugisn by hand.
* The shared library handle of the VST2 plugin.
*/
std::unique_ptr<std::remove_pointer_t<HMODULE>, decltype(&FreeLibrary)>
plugin_handle_;
@@ -245,8 +244,7 @@ class Vst2Bridge : public HostBridge {
* practice every host will bundle all events in a single
* `effProcessEvents()` call.
*/
llvm::SmallVector<DynamicVstEvents, 1>
next_audio_buffer_midi_events_;
llvm::SmallVector<DynamicVstEvents, 1> next_audio_buffer_midi_events_;
/**
* Whether `next_audio_buffer_midi_events` should be cleared before
* inserting new events.
-2
View File
@@ -11,7 +11,6 @@ if is_64bit_system
configuration_dep,
asio_dep,
boost_dep,
bitsery_dep,
function2_dep,
ghc_filesystem_dep,
@@ -37,7 +36,6 @@ if with_bitbridge
configuration_dep,
asio_dep,
boost_dep,
ghc_filesystem_dep,
bitsery_dep,
function2_dep,