Also define the shobjidl.h define globally

This was needed for Wine 6.2.
This commit is contained in:
Robbert van der Helm
2021-05-11 02:26:57 +02:00
parent af299f3c66
commit db6ecdbbd4
2 changed files with 8 additions and 10 deletions
+8 -1
View File
@@ -48,14 +48,21 @@ compiler_options = [
'-msse2',
]
# HACK: Some stuff from `windows.h` that we don't need results in conflicting
# definitions, so we'll try to exclude those bits
wine_compiler_options = [
# Some stuff from `windows.h` results in conflicting definitions
'-DNOMINMAX',
# Winsock conflicts with the Posix sockets API. Before Wine 6.8 there was a
# `WINE_NOWINSOCK` that would exclude just `winsock.h` from `windows.h`, but
# they got rid of that so we now need to explicitly define the ifdef guards
'-D__WINE_WINSOCKAPI_STDLIB_H',
'-D_WINSOCKAPI_',
# This is only relevant for Wine 6.2, but commit
# `0c19e2e487d36a89531daf4897c0b6390d82a843`, broke compilation of
# `shobjidl.h` under C++.
#
# https://bugs.winehq.org/show_bug.cgi?id=50670
'-D__IFileOperation_INTERFACE_DEFINED__',
]
# NOTE: GCC doesn't 8-byte align doubles in structs on x86 for ABI-compatibilty
-9
View File
@@ -22,15 +22,6 @@
#include "vst3-impls/host-context-proxy.h"
#include "vst3-impls/plug-frame-proxy.h"
// HACK: As of Wine commit `0c19e2e487d36a89531daf4897c0b6390d82a843` (or Wine
// 6.2), Wine's `shobjidl.h` cannot be compiled under C++ because one of
// the parameters in the file operations interface is now named
// `template`, which is a reserved keyword. Since we do not need this
// interface, we'll just hack around this by making sure it never gets
// defined.
//
// https://bugs.winehq.org/show_bug.cgi?id=50670
#define __IFileOperation_INTERFACE_DEFINED__
// NOLINTNEXTLINE(bugprone-suspicious-include)
#include <public.sdk/source/vst/hosting/module_win32.cpp>