mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-06 19:40:10 +02:00
Add CLAP whenever mentioning yabridge libs
This commit is contained in:
@@ -49,11 +49,11 @@ jobs:
|
||||
meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dbitbridge=true -Dcpp_link_args='-mwindows -static-libstdc++' -Dbuild.cpp_link_args='-static-libstdc++'
|
||||
ninja -C build
|
||||
- name: Strip remaining debug symbols
|
||||
run: strip build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
run: strip build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
- name: Create an archive for the binaries
|
||||
run: |
|
||||
mkdir yabridge
|
||||
cp build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp CHANGELOG.md README.md yabridge
|
||||
|
||||
tar -caf "$ARCHIVE_NAME" yabridge
|
||||
@@ -87,11 +87,11 @@ jobs:
|
||||
meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dbitbridge=true
|
||||
ninja -C build
|
||||
- name: Strip remaining debug symbols
|
||||
run: strip build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
run: strip build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
- name: Create an archive for the binaries
|
||||
run: |
|
||||
mkdir yabridge
|
||||
cp build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp CHANGELOG.md README.md yabridge
|
||||
|
||||
tar -caf "$ARCHIVE_NAME" yabridge
|
||||
@@ -127,11 +127,11 @@ jobs:
|
||||
meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dbitbridge=true -Dcpp_link_args='-mwindows -static-libstdc++' -Dbuild.cpp_args='-m32' -Dbuild.cpp_link_args='-m32 -static-libstdc++'
|
||||
ninja -C build
|
||||
- name: Strip remaining debug symbols
|
||||
run: strip build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
run: strip build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe.so
|
||||
- name: Create an archive for the binaries
|
||||
run: |
|
||||
mkdir yabridge
|
||||
cp build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp build/libyabridge{,-chainloader}-{clap,vst2,vst3}.so build/yabridge-host{,-32}.exe{,.so} yabridge
|
||||
cp CHANGELOG.md README.md yabridge
|
||||
|
||||
tar -caf "$ARCHIVE_NAME" yabridge
|
||||
|
||||
+1
-1
@@ -259,7 +259,7 @@ endif
|
||||
#
|
||||
# Binaries
|
||||
#
|
||||
# The application consists of a plugin (`libyabridge-{vst2,vst3}.so`) that calls
|
||||
# The application consists of a plugin (`libyabridge-{clap,vst2,vst3}.so`) that calls
|
||||
# a Winelib application (`yabridge-host{,-32}.exe`) that can host Windows VST2
|
||||
# and VST3 plugins. These plugins can in turn be loaded from small stub
|
||||
# libraries dubbed chainloaders to avoid having to copy large plugin libraries
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "utils.h"
|
||||
|
||||
// These chainloader libraries are tiny, mostly dependencyless libraries that
|
||||
// `dlopen()` the actual `libyabridge-{vst2,vst3}.so` files and forward the
|
||||
// `dlopen()` the actual `libyabridge-{clap,vst2,vst3}.so` files and forward the
|
||||
// entry point function calls from this library to those. Or technically, these
|
||||
// libraries use dedicated entry point functions because multiple chainloader
|
||||
// libraries may all dynamically link to the exact same plugin library, so we
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "utils.h"
|
||||
|
||||
// These chainloader libraries are tiny, mostly dependencyless libraries that
|
||||
// `dlopen()` the actual `libyabridge-{vst2,vst3}.so` files and forward the
|
||||
// `dlopen()` the actual `libyabridge-{clap,vst2,vst3}.so` files and forward the
|
||||
// entry point function calls from this library to those. Or technically, these
|
||||
// libraries use dedicated entry point functions because multiple chainloader
|
||||
// libraries may all dynamically link to the exact same plugin library, so we
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
* they can share resources. Configuration file loading works as follows:
|
||||
*
|
||||
* 1. `load_config_for(path)` from `src/plugin/utils.h` gets called with a path
|
||||
* to the copy of or symlink to `libyabridge-{vst2,vst3}.so` that the plugin
|
||||
* to the copy of or symlink to `libyabridge-{clap,vst2,vst3}.so` that the plugin
|
||||
* host has tried to load.
|
||||
* 2. We start looking for a file named `yabridge.toml` in the same directory as
|
||||
* that `.so` file, iteratively continuing to search one directory higher
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/**
|
||||
* Return a path to this `.so` file. This can be used to find out from where
|
||||
* this copy of `libyabridge-{vst2,vst3}.so` or `libyabridge-chainloader-*.so`
|
||||
* this copy of `libyabridge-{clap,vst2,vst3}.so` or `libyabridge-chainloader-*.so`
|
||||
* was loaded so we can search for a matching Windows plugin library. When the
|
||||
* chainloaders are used, this path should be passed to the chainloaded plugin
|
||||
* library using the provided exported functions since they can't detect the
|
||||
|
||||
+4
-4
@@ -45,7 +45,7 @@ struct PluginInfo {
|
||||
public:
|
||||
/**
|
||||
* Locate the Windows plugin based on the location of this copy of
|
||||
* `libyabridge-{vst2,vst3}.so` file and the type of the plugin we're going
|
||||
* `libyabridge-{clap,vst2,vst3}.so` file and the type of the plugin we're going
|
||||
* to load. For VST2 plugins this is a file with the same name but with a
|
||||
* `.dll` file extension instead of `.so`. In case this file does not exist
|
||||
* and the `.so` file is a symlink, we'll also repeat this check for the
|
||||
@@ -184,9 +184,9 @@ std::string create_logger_prefix(
|
||||
* Finds the Wine VST host (either `yabridge-host.exe` or `yabridge-host-32.exe`
|
||||
* depending on the plugin). For this we will search in two places:
|
||||
*
|
||||
* 1. Alongside libyabridge-{vst2,vst3}.so if the file got symlinked. This is
|
||||
* 1. Alongside libyabridge-{clap,vst2,vst3}.so if the file got symlinked. This is
|
||||
* useful when developing, as you can simply symlink the
|
||||
* `libyabridge-{vst2,vst3}.so` file in the build directory without having
|
||||
* `libyabridge-{clap,vst2,vst3}.so` file in the build directory without having
|
||||
* to install anything to /usr.
|
||||
* 2. In the regular search path, augmented with `~/.local/share/yabridge` to
|
||||
* ease the setup process.
|
||||
@@ -228,7 +228,7 @@ ghc::filesystem::path generate_group_endpoint(
|
||||
|
||||
/**
|
||||
* Load the configuration that belongs to a copy of or symlink to
|
||||
* `libyabridge-{vst2,vst3}.so`. If no configuration file could be found then
|
||||
* `libyabridge-{clap,vst2,vst3}.so`. If no configuration file could be found then
|
||||
* this will return an empty configuration object with default settings. See the
|
||||
* docstrong on the `Configuration` class for more details on how to choose the
|
||||
* config file to load.
|
||||
|
||||
@@ -41,7 +41,7 @@ static const std::string host_name = "yabridge host version " +
|
||||
* plugin, or spawn a group host server.
|
||||
*
|
||||
* For the individual plugin situation this process will load the specified
|
||||
* plugin plugin, and then connect back to the `libyabridge-{vst2,vst3}.so`
|
||||
* plugin plugin, and then connect back to the `libyabridge-{clap,vst2,vst3}.so`
|
||||
* instance that spawned this over the socket.
|
||||
*
|
||||
* For the group host case this process will act as a daemon yabridge plugin
|
||||
|
||||
@@ -311,7 +311,7 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
|
||||
// `utils::normalize_path()` so that the reported numbers are still correct when encountering
|
||||
// overlapping symlinked paths.
|
||||
let mut managed_plugins: HashSet<PathBuf> = HashSet::new();
|
||||
// The plugins we created a new copy of `libyabridge-chainloader-{vst2,vst3}.so` for. We don't
|
||||
// The plugins we created a new copy of `libyabridge-chainloader-{clap,vst2,vst3}.so` for. We don't
|
||||
// touch these files if they're already up to date to prevent hosts from unnecessarily
|
||||
// rescanning the plugins.
|
||||
let mut new_plugins: HashSet<PathBuf> = HashSet::new();
|
||||
@@ -710,7 +710,7 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
// The path setup is to make sure that the `libyabridge-chainloader-{vst2,vst3}.so` copies can
|
||||
// The path setup is to make sure that the `libyabridge-chainloader-{clap,vst2,vst3}.so` copies can
|
||||
// find `yabridge-host.exe` and by extension the plugin libraries. That last part should already
|
||||
// be the case if we get to this point though.
|
||||
verify_path_setup(config)?;
|
||||
|
||||
@@ -63,7 +63,7 @@ const YABRIDGE_VST3_HOME: &str = ".vst3/yabridge";
|
||||
#[derive(Debug, Default, Deserialize, Serialize)]
|
||||
#[serde(default)]
|
||||
pub struct Config {
|
||||
/// The path to the directory containing `libyabridge-{chainloader,}-{vst2,vst3}.so`. If not
|
||||
/// The path to the directory containing `libyabridge-{chainloader,}-{clap,vst2,vst3}.so`. If not
|
||||
/// set, then yabridgectl will look in `/usr/lib` and `$XDG_DATA_HOME/yabridge` since those are
|
||||
/// the expected locations for yabridge to be installed in.
|
||||
pub yabridge_home: Option<PathBuf>,
|
||||
@@ -314,7 +314,7 @@ impl Config {
|
||||
|
||||
/// Fetch the XDG base directories for yabridge's own files, converting any error messages if this
|
||||
/// somehow fails into a printable string to reduce boiler plate. This is used when searching for
|
||||
/// `libyabridge-chainloader-{vst2,vst3}.so` when no explicit search path has been set.
|
||||
/// `libyabridge-chainloader-{clap,vst2,vst3}.so` when no explicit search path has been set.
|
||||
pub fn yabridge_directories() -> Result<BaseDirectories> {
|
||||
BaseDirectories::with_prefix(YABRIDGE_PREFIX).context("Error while parsing base directories")
|
||||
}
|
||||
|
||||
@@ -130,11 +130,11 @@ fn main() -> Result<()> {
|
||||
.long("path")
|
||||
.help(
|
||||
"Path to the directory containing \
|
||||
'libyabridge-chainloader-{vst2,vst3}.so'",
|
||||
'libyabridge-chainloader-{clap,vst2,vst3}.so'",
|
||||
)
|
||||
.long_help(
|
||||
"Path to the directory containing \
|
||||
'libyabridge-chainloader-{vst2,vst3}.so'. If this is not set, then \
|
||||
'libyabridge-chainloader-{clap,vst2,vst3}.so'. If this is not set, then \
|
||||
yabridgectl will look in both '/usr/lib' and \
|
||||
'~/.local/share/yabridge' by default.",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user