mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Update the VST3 dependency to version 3.7.7
This commit is contained in:
+3
-1
@@ -10,7 +10,9 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
### Packaging notes
|
### Packaging notes
|
||||||
|
|
||||||
- The CLAP dependency has been updated to version 1.1.4.
|
- The VST3 dependency has been updated to target version 3.7.7 with tag
|
||||||
|
`v3.7.7_build_19-patched`.
|
||||||
|
- The CLAP dependency has been updated to target version 1.1.4.
|
||||||
- The `patch-vst3-sdk.sh` script now applies a handwritten diff to the SDK
|
- The `patch-vst3-sdk.sh` script now applies a handwritten diff to the SDK
|
||||||
instead of patching the SDK using sed. This makes it easier to use older (but
|
instead of patching the SDK using sed. This makes it easier to use older (but
|
||||||
still API-compatible) VST3 SDK versions with yabridge and it makes the
|
still API-compatible) VST3 SDK versions with yabridge and it makes the
|
||||||
|
|||||||
@@ -820,7 +820,7 @@ The following dependencies are included in the repository as a Meson wrap:
|
|||||||
- [function2](https://github.com/Naios/function2)
|
- [function2](https://github.com/Naios/function2)
|
||||||
- [`ghc::filesystem`](https://github.com/gulrak/filesystem)
|
- [`ghc::filesystem`](https://github.com/gulrak/filesystem)
|
||||||
- [tomlplusplus](https://github.com/marzer/tomlplusplus)
|
- [tomlplusplus](https://github.com/marzer/tomlplusplus)
|
||||||
- Version 3.7.5 of the [VST3 SDK](https://github.com/robbert-vdh/vst3sdk) with
|
- Version 3.7.7 of the [VST3 SDK](https://github.com/robbert-vdh/vst3sdk) with
|
||||||
some [patches](https://github.com/robbert-vdh/yabridge/blob/master/tools/patch-vst3-sdk.sh)
|
some [patches](https://github.com/robbert-vdh/yabridge/blob/master/tools/patch-vst3-sdk.sh)
|
||||||
to allow Winelib compilation
|
to allow Winelib compilation
|
||||||
- Version 1.1.4 of the [CLAP headers](https://github.com/free-audio/clap).
|
- Version 1.1.4 of the [CLAP headers](https://github.com/free-audio/clap).
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# subprojects. The only workaround is to only define only the necessary
|
# subprojects. The only workaround is to only define only the necessary
|
||||||
# variables there, and to then assemble the dependencies here ourselves.
|
# variables there, and to then assemble the dependencies here ourselves.
|
||||||
|
|
||||||
vst3 = subproject('vst3', version : '3.7.5')
|
vst3 = subproject('vst3', version : '3.7.7')
|
||||||
|
|
||||||
# Also include our normal compiler options so symbols are hidden by default
|
# Also include our normal compiler options so symbols are hidden by default
|
||||||
vst3_compiler_options = compiler_options + vst3.get_variable('compiler_options')
|
vst3_compiler_options = compiler_options + vst3.get_variable('compiler_options')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[wrap-git]
|
[wrap-git]
|
||||||
url = https://github.com/robbert-vdh/vst3sdk.git
|
url = https://github.com/robbert-vdh/vst3sdk.git
|
||||||
# This is VST3 SDK v3.7.5_build_44 with the documentation and VSTGUI submodules
|
# This is VST3 SDK v3.7.7_build_19 with the documentation and VSTGUI submodules
|
||||||
# removed and a dummy `meson.build` file that just lists all source files
|
# removed and a dummy `meson.build` file that just lists all source files
|
||||||
revision = v3.7.5_build_44-patched-2
|
revision = v3.7.7_build_19-patched
|
||||||
clone-recursive = true
|
clone-recursive = true
|
||||||
depth = 1
|
depth = 1
|
||||||
|
|||||||
@@ -0,0 +1,165 @@
|
|||||||
|
Submodule pluginterfaces contains modified content
|
||||||
|
diff --git a/pluginterfaces/base/fstrdefs.h b/pluginterfaces/base/fstrdefs.h
|
||||||
|
index 848e8ee..8ddec09 100644
|
||||||
|
--- a/pluginterfaces/base/fstrdefs.h
|
||||||
|
+++ b/pluginterfaces/base/fstrdefs.h
|
||||||
|
@@ -22,6 +22,16 @@
|
||||||
|
/** string methods defines unicode / ASCII */
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
+// We can use most of the VST3 SDK's Windows UTF-16 functionality by just
|
||||||
|
+// creating aliases for equivalent Linux functions
|
||||||
|
+#if __WINE__
|
||||||
|
+#define wcsicmp wcscasecmp
|
||||||
|
+#define wcsnicmp wcsncasecmp
|
||||||
|
+#define _vsnwprintf vswprintf
|
||||||
|
+#define stricmp strcasecmp
|
||||||
|
+#define strnicmp strncasecmp
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// 16 bit string operations
|
||||||
|
#if SMTG_CPP11 // if c++11 unicode string literals
|
||||||
|
#define SMTG_CPP11_CAT_PRIVATE_DONT_USE(a,b) a ## b
|
||||||
|
diff --git a/pluginterfaces/base/ftypes.h b/pluginterfaces/base/ftypes.h
|
||||||
|
index 133dbba..33ecae3 100644
|
||||||
|
--- a/pluginterfaces/base/ftypes.h
|
||||||
|
+++ b/pluginterfaces/base/ftypes.h
|
||||||
|
@@ -154,7 +154,7 @@ namespace Steinberg
|
||||||
|
// always inline macros (only when RELEASE is 1)
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
#if RELEASE
|
||||||
|
- #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__MINGW32__)
|
||||||
|
+ #if SMTG_OS_MACOS || SMTG_OS_LINUX || defined(__WINE__)
|
||||||
|
#define SMTG_ALWAYS_INLINE __inline__ __attribute__((__always_inline__))
|
||||||
|
#define SMTG_NEVER_INLINE __attribute__((noinline))
|
||||||
|
#elif SMTG_OS_WINDOWS
|
||||||
|
diff --git a/pluginterfaces/base/ustring.cpp b/pluginterfaces/base/ustring.cpp
|
||||||
|
index 24a412f..8e631c9 100644
|
||||||
|
--- a/pluginterfaces/base/ustring.cpp
|
||||||
|
+++ b/pluginterfaces/base/ustring.cpp
|
||||||
|
@@ -38,6 +38,10 @@
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef __WINE__
|
||||||
|
+#include <wchar.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
namespace Steinberg {
|
||||||
|
|
||||||
|
@@ -173,7 +177,7 @@ bool UString::scanFloat (double& value) const
|
||||||
|
bool UString::printFloat (double value, int32 precision)
|
||||||
|
{
|
||||||
|
#if SMTG_OS_WINDOWS
|
||||||
|
- return swprintf ((wchar_t*)thisBuffer, L"%.*lf", precision, value) != -1;
|
||||||
|
+ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%.*lf", precision, value) != -1;
|
||||||
|
#elif SMTG_OS_MACOS
|
||||||
|
bool result = false;
|
||||||
|
CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%.*lf"), precision, value);
|
||||||
|
@@ -238,7 +242,7 @@ bool UString::scanInt (int64& value) const
|
||||||
|
bool UString::printInt (int64 value)
|
||||||
|
{
|
||||||
|
#if SMTG_OS_WINDOWS
|
||||||
|
- return swprintf ((wchar_t*)thisBuffer, L"%I64d", value) != -1;
|
||||||
|
+ return swprintf ((wchar_t*)thisBuffer, thisSize, L"%I64d", value) != -1;
|
||||||
|
|
||||||
|
#elif SMTG_OS_MACOS
|
||||||
|
CFStringRef cfStr = CFStringCreateWithFormat (0, 0, CFSTR("%lld"), value);
|
||||||
|
Submodule public.sdk contains modified content
|
||||||
|
diff --git a/public.sdk/source/common/systemclipboard_win32.cpp b/public.sdk/source/common/systemclipboard_win32.cpp
|
||||||
|
index c5cb2b8..2ee3d65 100644
|
||||||
|
--- a/public.sdk/source/common/systemclipboard_win32.cpp
|
||||||
|
+++ b/public.sdk/source/common/systemclipboard_win32.cpp
|
||||||
|
@@ -111,7 +111,7 @@ bool copyTextToClipboard (const std::string& text)
|
||||||
|
{
|
||||||
|
if (auto* data = static_cast<WCHAR*> (GlobalLock (memory)))
|
||||||
|
{
|
||||||
|
-#if defined(__MINGW32__)
|
||||||
|
+#if defined(__WINE__)
|
||||||
|
memcpy (data, wideStr.data (), byteSize);
|
||||||
|
#else
|
||||||
|
memcpy_s (data, byteSize, wideStr.data (), byteSize);
|
||||||
|
diff --git a/public.sdk/source/vst/hosting/module_win32.cpp b/public.sdk/source/vst/hosting/module_win32.cpp
|
||||||
|
index 2ba9319..d764a4c 100644
|
||||||
|
--- a/public.sdk/source/vst/hosting/module_win32.cpp
|
||||||
|
+++ b/public.sdk/source/vst/hosting/module_win32.cpp
|
||||||
|
@@ -44,35 +44,10 @@
|
||||||
|
#include <algorithm>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
-#if SMTG_CPP17
|
||||||
|
-
|
||||||
|
-#if __has_include(<filesystem>)
|
||||||
|
-#define USE_FILESYSTEM 1
|
||||||
|
-#elif __has_include(<experimental/filesystem>)
|
||||||
|
-#define USE_FILESYSTEM 0
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#else // !SMTG_CPP17
|
||||||
|
-
|
||||||
|
-#define USE_FILESYSTEM 0
|
||||||
|
-
|
||||||
|
-#endif // SMTG_CPP17
|
||||||
|
-
|
||||||
|
-#if USE_FILESYSTEM == 1
|
||||||
|
-
|
||||||
|
-#include <filesystem>
|
||||||
|
-namespace filesystem = std::filesystem;
|
||||||
|
-
|
||||||
|
-#else // USE_FILESYSTEM == 0
|
||||||
|
-
|
||||||
|
-// The <experimental/filesystem> header is deprecated. It is superseded by the C++17 <filesystem>
|
||||||
|
-// header. You can define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING to silence the
|
||||||
|
-// warning, otherwise the build will fail in VS2019 16.3.0
|
||||||
|
-#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
|
||||||
|
-#include <experimental/filesystem>
|
||||||
|
-namespace filesystem = std::experimental::filesystem;
|
||||||
|
-
|
||||||
|
-#endif // USE_FILESYSTEM
|
||||||
|
+// `std::filesystem` doesn't work correctly with wineg++, resulting in weird
|
||||||
|
+// memory errors. This library is a drop-in replacement.
|
||||||
|
+#include <ghc/filesystem.hpp>
|
||||||
|
+namespace filesystem = ghc::filesystem;
|
||||||
|
|
||||||
|
#pragma comment(lib, "Shell32")
|
||||||
|
|
||||||
|
@@ -405,13 +380,13 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext,
|
||||||
|
filesystem::path result;
|
||||||
|
if (checkVST3Package (p, &result))
|
||||||
|
{
|
||||||
|
- pathList.push_back (result.generic_u8string ());
|
||||||
|
+ pathList.push_back (result.generic_string ());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
findFilesWithExt (cp, ext, pathList, recursive);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- pathList.push_back (cp.generic_u8string ());
|
||||||
|
+ pathList.push_back (cp.generic_string ());
|
||||||
|
}
|
||||||
|
else if (recursive)
|
||||||
|
{
|
||||||
|
@@ -431,18 +406,18 @@ void findFilesWithExt (const filesystem::path& path, const std::string& ext,
|
||||||
|
filesystem::path result;
|
||||||
|
if (checkVST3Package (*resolvedLink, &result))
|
||||||
|
{
|
||||||
|
- pathList.push_back (result.generic_u8string ());
|
||||||
|
+ pathList.push_back (result.generic_string ());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
findFilesWithExt (*resolvedLink, ext, pathList, recursive);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- pathList.push_back (resolvedLink->generic_u8string ());
|
||||||
|
+ pathList.push_back (resolvedLink->generic_string ());
|
||||||
|
}
|
||||||
|
else if (filesystem::is_directory (*resolvedLink))
|
||||||
|
{
|
||||||
|
- const auto& str = resolvedLink->generic_u8string ();
|
||||||
|
- if (cp.generic_u8string ().compare (0, str.size (), str.data (),
|
||||||
|
+ const auto& str = resolvedLink->generic_string ();
|
||||||
|
+ if (cp.generic_string ().compare (0, str.size (), str.data (),
|
||||||
|
str.size ()) != 0)
|
||||||
|
findFilesWithExt (*resolvedLink, ext, pathList, recursive);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user