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
|
### Changed
|
||||||
|
|
||||||
- Almost the entirety of yabridge's backend has had a rewrite to get rid of any
|
- Almost the entirety of yabridge's backend has been rewritten to get rid of all
|
||||||
all dependencies on the Boost libraries to make packaging easier and to remove
|
dependencies on the Boost libraries to make packaging yabridge for distros
|
||||||
the runtime dependency on Boost.Filesystem for distro packaged versions of
|
easier and to make distro packaged versions of yabridge more reliable. This
|
||||||
yabridge. This prevents yabridge from breaking when Boost gets updated
|
gets rid of the runtime dependency on Boost.Filesystem for those builds, and
|
||||||
independently of the yabridge package.
|
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
|
- 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
|
lock the memory, yabridge will now retry mapping the memory without locking it
|
||||||
instead of immediately terminating the process. An annoying desktop
|
instead of immediately terminating the process. An annoying desktop
|
||||||
@@ -35,6 +36,7 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
### Packaging notes
|
### Packaging notes
|
||||||
|
|
||||||
|
- Completely removed the dependency on all Boost libraries.
|
||||||
- Added a dependency on the headers-only
|
- Added a dependency on the headers-only
|
||||||
[`ghc::filesystem`](https://github.com/gulrak/filesystem) library to replace
|
[`ghc::filesystem`](https://github.com/gulrak/filesystem) library to replace
|
||||||
Boost.Filesystem.
|
Boost.Filesystem.
|
||||||
|
|||||||
@@ -765,7 +765,6 @@ the following dependencies:
|
|||||||
- A Wine installation with `winegcc` and the development headers. The latest
|
- A Wine installation with `winegcc` and the development headers. The latest
|
||||||
commits contain a workaround for a winelib [compilation
|
commits contain a workaround for a winelib [compilation
|
||||||
issue](https://bugs.winehq.org/show_bug.cgi?id=49138) with Wine 5.7+.
|
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
|
- libxcb
|
||||||
|
|
||||||
The following dependencies are included in the repository as a Meson wrap:
|
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.
|
[usage](#usage) section on how to set up yabridge.
|
||||||
|
|
||||||
<sup id="building-ubuntu-18.04">
|
<sup id="building-ubuntu-18.04">
|
||||||
*The versions of GCC and Boost that ship with Ubuntu 18.04 by default are too
|
*The version of GCC that ships with Ubuntu 18.04 by default is too old to
|
||||||
old to compile yabridge. If you do wish to build yabridge from scratch rather
|
compile yabridge. If you do wish to build yabridge from scratch rather than
|
||||||
than using the <a
|
using the <a
|
||||||
href="https://github.com/robbert-vdh/yabridge/actions?query=workflow%3A%22Automated+builds%22+branch%3Amaster">prebuilt
|
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
|
binaries</a>, then you should take a look at the <a
|
||||||
href="https://github.com/robbert-vdh/docker-yabridge/blob/master/bionic/Dockerfile">docker
|
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
|
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
|
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
|
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
|
```shell
|
||||||
# Enable the bitbridge on an existing build
|
# 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
|
files from smaller stub libraries. This would avoid having to rerun
|
||||||
`yabridgectl sync` after an upgrade, and it would save disk space on systems
|
`yabridgectl sync` after an upgrade, and it would save disk space on systems
|
||||||
without support for reflinks.
|
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
|
# 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
|
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
|
'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
|
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
|
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 Boost.Asio
|
calls can all be done from that same thread by posting a task to the Asio IO
|
||||||
IO context.
|
context.
|
||||||
|
|
||||||
On the native Linux side it usually doesn't matter which thread functions are
|
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
|
called from, but since REAPER does not allow any function calls that interact
|
||||||
|
|||||||
@@ -183,8 +183,6 @@ endif
|
|||||||
# and 64-bit versions
|
# and 64-bit versions
|
||||||
|
|
||||||
asio_dep = dependency('asio', version : '>=1.22.0')
|
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')
|
if meson.version().version_compare('>=0.60')
|
||||||
# Bitsery's CMake build definition is capitalized for some reason
|
# Bitsery's CMake build definition is capitalized for some reason
|
||||||
bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0')
|
bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0')
|
||||||
@@ -248,7 +246,6 @@ shared_library(
|
|||||||
configuration_dep,
|
configuration_dep,
|
||||||
|
|
||||||
asio_dep,
|
asio_dep,
|
||||||
boost_dep,
|
|
||||||
bitsery_dep,
|
bitsery_dep,
|
||||||
dl_dep,
|
dl_dep,
|
||||||
ghc_filesystem_dep,
|
ghc_filesystem_dep,
|
||||||
@@ -271,7 +268,6 @@ if with_vst3
|
|||||||
configuration_dep,
|
configuration_dep,
|
||||||
|
|
||||||
asio_dep,
|
asio_dep,
|
||||||
boost_dep,
|
|
||||||
bitsery_dep,
|
bitsery_dep,
|
||||||
dl_dep,
|
dl_dep,
|
||||||
function2_dep,
|
function2_dep,
|
||||||
|
|||||||
@@ -188,8 +188,7 @@ class Vst2Bridge : public HostBridge {
|
|||||||
#pragma GCC diagnostic ignored "-Wignored-attributes"
|
#pragma GCC diagnostic ignored "-Wignored-attributes"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The shared library handle of the VST plugin. I sadly could not get
|
* The shared library handle of the VST2 plugin.
|
||||||
* Boost.DLL to work here, so we'll just load the VST plugisn by hand.
|
|
||||||
*/
|
*/
|
||||||
std::unique_ptr<std::remove_pointer_t<HMODULE>, decltype(&FreeLibrary)>
|
std::unique_ptr<std::remove_pointer_t<HMODULE>, decltype(&FreeLibrary)>
|
||||||
plugin_handle_;
|
plugin_handle_;
|
||||||
@@ -245,8 +244,7 @@ class Vst2Bridge : public HostBridge {
|
|||||||
* practice every host will bundle all events in a single
|
* practice every host will bundle all events in a single
|
||||||
* `effProcessEvents()` call.
|
* `effProcessEvents()` call.
|
||||||
*/
|
*/
|
||||||
llvm::SmallVector<DynamicVstEvents, 1>
|
llvm::SmallVector<DynamicVstEvents, 1> next_audio_buffer_midi_events_;
|
||||||
next_audio_buffer_midi_events_;
|
|
||||||
/**
|
/**
|
||||||
* Whether `next_audio_buffer_midi_events` should be cleared before
|
* Whether `next_audio_buffer_midi_events` should be cleared before
|
||||||
* inserting new events.
|
* inserting new events.
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ if is_64bit_system
|
|||||||
configuration_dep,
|
configuration_dep,
|
||||||
|
|
||||||
asio_dep,
|
asio_dep,
|
||||||
boost_dep,
|
|
||||||
bitsery_dep,
|
bitsery_dep,
|
||||||
function2_dep,
|
function2_dep,
|
||||||
ghc_filesystem_dep,
|
ghc_filesystem_dep,
|
||||||
@@ -37,7 +36,6 @@ if with_bitbridge
|
|||||||
configuration_dep,
|
configuration_dep,
|
||||||
|
|
||||||
asio_dep,
|
asio_dep,
|
||||||
boost_dep,
|
|
||||||
ghc_filesystem_dep,
|
ghc_filesystem_dep,
|
||||||
bitsery_dep,
|
bitsery_dep,
|
||||||
function2_dep,
|
function2_dep,
|
||||||
|
|||||||
Reference in New Issue
Block a user