mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +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++'
|
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
|
ninja -C build
|
||||||
- name: Strip remaining debug symbols
|
- 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
|
- name: Create an archive for the binaries
|
||||||
run: |
|
run: |
|
||||||
mkdir yabridge
|
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
|
cp CHANGELOG.md README.md yabridge
|
||||||
|
|
||||||
tar -caf "$ARCHIVE_NAME" 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
|
meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dbitbridge=true
|
||||||
ninja -C build
|
ninja -C build
|
||||||
- name: Strip remaining debug symbols
|
- 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
|
- name: Create an archive for the binaries
|
||||||
run: |
|
run: |
|
||||||
mkdir yabridge
|
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
|
cp CHANGELOG.md README.md yabridge
|
||||||
|
|
||||||
tar -caf "$ARCHIVE_NAME" 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++'
|
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
|
ninja -C build
|
||||||
- name: Strip remaining debug symbols
|
- 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
|
- name: Create an archive for the binaries
|
||||||
run: |
|
run: |
|
||||||
mkdir yabridge
|
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
|
cp CHANGELOG.md README.md yabridge
|
||||||
|
|
||||||
tar -caf "$ARCHIVE_NAME" yabridge
|
tar -caf "$ARCHIVE_NAME" yabridge
|
||||||
|
|||||||
+1
-1
@@ -259,7 +259,7 @@ endif
|
|||||||
#
|
#
|
||||||
# Binaries
|
# 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
|
# 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
|
# and VST3 plugins. These plugins can in turn be loaded from small stub
|
||||||
# libraries dubbed chainloaders to avoid having to copy large plugin libraries
|
# libraries dubbed chainloaders to avoid having to copy large plugin libraries
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
// These chainloader libraries are tiny, mostly dependencyless libraries that
|
// 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
|
// entry point function calls from this library to those. Or technically, these
|
||||||
// libraries use dedicated entry point functions because multiple chainloader
|
// libraries use dedicated entry point functions because multiple chainloader
|
||||||
// libraries may all dynamically link to the exact same plugin library, so we
|
// libraries may all dynamically link to the exact same plugin library, so we
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
// These chainloader libraries are tiny, mostly dependencyless libraries that
|
// 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
|
// entry point function calls from this library to those. Or technically, these
|
||||||
// libraries use dedicated entry point functions because multiple chainloader
|
// libraries use dedicated entry point functions because multiple chainloader
|
||||||
// libraries may all dynamically link to the exact same plugin library, so we
|
// 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:
|
* 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
|
* 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.
|
* host has tried to load.
|
||||||
* 2. We start looking for a file named `yabridge.toml` in the same directory as
|
* 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
|
* 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
|
* 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
|
* 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
|
* chainloaders are used, this path should be passed to the chainloaded plugin
|
||||||
* library using the provided exported functions since they can't detect the
|
* library using the provided exported functions since they can't detect the
|
||||||
|
|||||||
+4
-4
@@ -45,7 +45,7 @@ struct PluginInfo {
|
|||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Locate the Windows plugin based on the location of this copy of
|
* 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
|
* 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
|
* `.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
|
* 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`
|
* 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:
|
* 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
|
* 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.
|
* to install anything to /usr.
|
||||||
* 2. In the regular search path, augmented with `~/.local/share/yabridge` to
|
* 2. In the regular search path, augmented with `~/.local/share/yabridge` to
|
||||||
* ease the setup process.
|
* 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
|
* 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
|
* 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
|
* docstrong on the `Configuration` class for more details on how to choose the
|
||||||
* config file to load.
|
* config file to load.
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ static const std::string host_name = "yabridge host version " +
|
|||||||
* plugin, or spawn a group host server.
|
* plugin, or spawn a group host server.
|
||||||
*
|
*
|
||||||
* For the individual plugin situation this process will load the specified
|
* 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.
|
* instance that spawned this over the socket.
|
||||||
*
|
*
|
||||||
* For the group host case this process will act as a daemon yabridge plugin
|
* 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
|
// `utils::normalize_path()` so that the reported numbers are still correct when encountering
|
||||||
// overlapping symlinked paths.
|
// overlapping symlinked paths.
|
||||||
let mut managed_plugins: HashSet<PathBuf> = HashSet::new();
|
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
|
// touch these files if they're already up to date to prevent hosts from unnecessarily
|
||||||
// rescanning the plugins.
|
// rescanning the plugins.
|
||||||
let mut new_plugins: HashSet<PathBuf> = HashSet::new();
|
let mut new_plugins: HashSet<PathBuf> = HashSet::new();
|
||||||
@@ -710,7 +710,7 @@ pub fn do_sync(config: &mut Config, options: &SyncOptions) -> Result<()> {
|
|||||||
return Ok(());
|
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
|
// 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.
|
// be the case if we get to this point though.
|
||||||
verify_path_setup(config)?;
|
verify_path_setup(config)?;
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const YABRIDGE_VST3_HOME: &str = ".vst3/yabridge";
|
|||||||
#[derive(Debug, Default, Deserialize, Serialize)]
|
#[derive(Debug, Default, Deserialize, Serialize)]
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub struct Config {
|
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
|
/// 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.
|
/// the expected locations for yabridge to be installed in.
|
||||||
pub yabridge_home: Option<PathBuf>,
|
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
|
/// 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
|
/// 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> {
|
pub fn yabridge_directories() -> Result<BaseDirectories> {
|
||||||
BaseDirectories::with_prefix(YABRIDGE_PREFIX).context("Error while parsing base directories")
|
BaseDirectories::with_prefix(YABRIDGE_PREFIX).context("Error while parsing base directories")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,11 +130,11 @@ fn main() -> Result<()> {
|
|||||||
.long("path")
|
.long("path")
|
||||||
.help(
|
.help(
|
||||||
"Path to the directory containing \
|
"Path to the directory containing \
|
||||||
'libyabridge-chainloader-{vst2,vst3}.so'",
|
'libyabridge-chainloader-{clap,vst2,vst3}.so'",
|
||||||
)
|
)
|
||||||
.long_help(
|
.long_help(
|
||||||
"Path to the directory containing \
|
"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 \
|
yabridgectl will look in both '/usr/lib' and \
|
||||||
'~/.local/share/yabridge' by default.",
|
'~/.local/share/yabridge' by default.",
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user