mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-06 19:40:10 +02:00
Remove all references to Boost
Since we no longer depend on any of it.
This commit is contained in:
+7
-5
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user