Merge branch 'master' into feature/vst3

This commit is contained in:
Robbert van der Helm
2020-12-28 11:51:28 +01:00
4 changed files with 27 additions and 3 deletions
+3 -1
View File
@@ -46,7 +46,9 @@ TODO: Add an updates screenshot with some fancy VST3-only plugins to the readme
- Changed part of the build process considering [this Wine
bug](https://bugs.winehq.org/show_bug.cgi?id=49138). Building with Wine 5.7
and 5.8 required a change, but that change now breaks builds using Wine 6.0
and up, so this change has been reverted.
and up. We now detect which version of Wine is used to build with, and we then
apply the change conditionally to be able to support building with both older
and newer versions of Wine.
### Fixed
+14
View File
@@ -53,6 +53,20 @@ if with_vst3
compiler_options += '-DWITH_VST3'
endif
# Wine versions after Wine 5.6 and before 6.0 require a `__cdecl` calling
# convention to be specified on the `main()` functions or else `argc` and `argv`
# will point to the wrong memory. Similarly, with other versions of Wine this
# should _not_ be specified for the same reason. We'll try to figure out the
# current Wine version and add this calling convention based on that.
#
# https://bugs.winehq.org/show_bug.cgi?id=49138
wine_version = run_command('sh', '-c', '''wine --version | grep --only-matching -E '[0-9]+\.[0-9.]+' | head -n1''')
if wine_version.returncode() == 0 and \
wine_version.stdout().version_compare('>=5.7') and \
wine_version.stdout().version_compare('<6.0')
compiler_options += '-DWINE_USE_CDECL'
endif
# Generate header files for configuration variables such as the current git tag
# and the name of the host binary
subdir('src/common/config')
+5 -1
View File
@@ -36,7 +36,11 @@
* plugin host and this group plugin host will function identically on both the
* plugin and the Wine VST host side.
*/
int __attribute__((visibility("default"))) main(int argc, char* argv[]) {
int __attribute__((visibility("default")))
#ifdef WINE_USE_CDECL
__cdecl
#endif
main(int argc, char* argv[]) {
set_realtime_priority();
// Instead of directly hosting a plugin, this process will receive a UNIX
+5 -1
View File
@@ -32,7 +32,11 @@
* plugin plugin, and then connect back to the `libyabridge-{vst2,vst3}.so`
* instance that spawned this over the socket.
*/
int __attribute__((visibility("default"))) main(int argc, char* argv[]) {
int __attribute__((visibility("default")))
#ifdef WINE_USE_CDECL
__cdecl
#endif
main(int argc, char* argv[]) {
set_realtime_priority();
// We pass plugin format, the name of the VST2 plugin .dll file or VST3