diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e07cb1fd..7ff1c688 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: # Statically link to libstdc++ on Ubuntu 18.04 as we're compiling # with a newer version of g++ than what's in the default repos - meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dwith-bitbridge=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 - name: Strip remaining debug symbols run: strip build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-{host,group}{,-32}.exe.so @@ -84,7 +84,7 @@ jobs: # In this version we don't need to statically link libstdc++ since # Ubuntu 20.04 and similar distros will ship with a version that's # compatible with GCC 10, even if that's not the default GCC version - meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dwith-bitbridge=true + 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,group}{,-32}.exe.so @@ -124,7 +124,7 @@ jobs: # Statically link to libstdc++ on Ubuntu 18.04, and also target a # 32-bit OS - meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=10000 -Dwith-bitbridge=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 - name: Strip remaining debug symbols run: strip build/libyabridge{,-chainloader}-{vst2,vst3}.so build/yabridge-{host,group}{,-32}.exe.so diff --git a/CHANGELOG.md b/CHANGELOG.md index 8415590e..6258e817 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,8 @@ Versioning](https://semver.org/spec/v2.0.0.html). - Yabridge now prints the path to the `libyabridge-{vst2,vst3}.so` library that's being used on startup. This tells you where the chainloader is loading the library file from. Because you can never have too much information, right? +- The `with-bitbridge`, `with-vst3`, and `with-winedbg` build options have been + renamed to `bitbridge`, `vst3`, and `winedbg`. - `effProcessEvents` VST2 calls are now filtered out from the log when `YABRIDGE_DEBUG_LEVEL` is set to 1. @@ -78,6 +80,7 @@ Versioning](https://semver.org/spec/v2.0.0.html). - `libyabridge-chainloader-vst2.so` and `libyabridge-chainloader-vst3.so` are new files that should be included in the package. +- The `with-bitbridge` build option has been renamed to just `bitbridge`. - 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 diff --git a/README.md b/README.md index e256125b..0d861630 100644 --- a/README.md +++ b/README.md @@ -812,9 +812,9 @@ bit versions of the XCB library. This can then be set up as follows: ```shell # Enable the bitbridge on an existing build -meson configure build -Dwith-bitbridge=true +meson configure build -Dbitbridge=true # Or configure a new build from scratch -meson setup build --buildtype=release --cross-file cross-wine.conf -Dwith-bitbridge=true +meson setup build --buildtype=release --cross-file cross-wine.conf -Dbitbridge=true ninja -C build ``` @@ -836,7 +836,7 @@ actual 32-bit system you would need to comment out the 64-bit `yabridge-host` and `yabridge-group` binaries in `meson.build`: ```shell -meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=1000 -Dwith-bitbridge=true -Dbuild.cpp_args='-m32' -Dbuild.cpp_link_args='-m32' +meson setup build --buildtype=release --cross-file=cross-wine.conf --unity=on --unity-size=1000 -Dbitbridge=true -Dbuild.cpp_args='-m32' -Dbuild.cpp_link_args='-m32' ninja -C build ``` @@ -900,5 +900,5 @@ environments and window managers will require some slight modifications in rebuild yabridge: ```shell -meson configure build --buildtype=debug -Dwith-winedbg=true +meson configure build --buildtype=debug -Dwinedbg=true ``` diff --git a/meson.build b/meson.build index fc4968a7..8d800ce6 100644 --- a/meson.build +++ b/meson.build @@ -17,19 +17,19 @@ project( # # In theory yabridge should compile fine on a 32-bit system, but you will always -# need to pass `-Dwith-bitbridge=true`. We just make sure that we won't build +# need to pass `-Dbitbridge=true`. We just make sure that we won't build # any 64-bit binaries in that situation. is_64bit_system = build_machine.cpu_family() not in ['x86', 'arm'] with_32bit_libraries = (not is_64bit_system) or get_option('build.cpp_args').contains('-m32') -with_bitbridge = get_option('with-bitbridge') -with_winedbg = get_option('with-winedbg') -with_vst3 = get_option('with-vst3') +with_bitbridge = get_option('bitbridge') +with_winedbg = get_option('winedbg') +with_vst3 = get_option('vst3') # # Compiler flags # -# Depending on the `with-bitbridge` flag we'll enable building secondary 32-bit +# Depending on the `bitbridge` flag we'll enable building secondary 32-bit # host applications that can act as a bit bridge for using 32-bit Windows # plugins in 64-bit Linux VST hosts. The plugin will determine which host # application to use based on the `.dll` file it's trying to load. This setup is @@ -164,7 +164,7 @@ if wine_version.returncode() == 0 and \ with_vst3 error('Because of a bug in Wine < 5.7\n' + 'you cannot build yabridge with VST3 support using these older Wine versions.\n' + - 'Use the \'-Dwith-vst3=false\' build option to disable VST3 support.\n\n' + + 'Use the \'-Dvst3=false\' build option to disable VST3 support.\n\n' + 'https://github.com/robbert-vdh/yabridge/issues/63#issuecomment-757369645') endif diff --git a/meson_options.txt b/meson_options.txt index c6b722aa..19ce3340 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,21 +1,19 @@ -# TODO: For yabridge 4.0, remove the `with-` prefix from these options - option( - 'with-bitbridge', + 'bitbridge', type : 'boolean', value : false, description : 'Build a 32-bit host application for hosting 32-bit plugins. See the readme for full instructions on how to use this.' ) option( - 'with-vst3', + 'vst3', type : 'boolean', value : true, description : 'Whether to build the VST3 version of yabridge.' ) option( - 'with-winedbg', + 'winedbg', type : 'boolean', value : false, description : 'Whether to run the Wine VST host with GDB attached. Might not always be reliable.' diff --git a/src/plugin/host-process.h b/src/plugin/host-process.h index 80e099be..63e34ae4 100644 --- a/src/plugin/host-process.h +++ b/src/plugin/host-process.h @@ -77,9 +77,9 @@ class HostProcess { * environment variables for the Wine prefix the plugin is in, setting up * pipes or files for STDIO redirection, closing file descriptors to prevent * leaks, and wrapping all of that in a terminal process running winedbg if - * we're compiling with `-Dwith-winedbg=true`. Keep in mind that winedbg - * does not handle arguments containing spaces, so most Windows paths will - * be split up into multiple arguments. + * we're compiling with `-Dwinedbg=true`. Keep in mind that winedbg does not + * handle arguments containing spaces, so most Windows paths will be split + * up into multiple arguments. * * @param logger The `Logger` instance the redirected STDIO streams will be * written to.