https://bugs.winehq.org/show_bug.cgi?id=52354
--- Comment #20 from Charles Davis cdavis5x@gmail.com --- (In reply to Gcenx from comment #17)
I've tried to compile wine-7.0 with this patch but winemac.drv fails.
Firstly needed to use at least MacOSX10.12.sdk due to
:info:build /opt/local/var/macports/build/_Users_gcenx_ports_x11_wine-stable/wine-stable/ work/wine-wine-7.0/dlls/winemac.drv/cocoa_window.m:348:44: error: cannot find protocol declaration for 'CALayerDelegate'; did you mean 'NSDrawerDelegate'?
For macOS less than 10.13, we'll need to define the formerly-informal CALayerDelegate protocol ourselves: the formal protocol wasn't added to the SDK until then. Much like how we have to define NSViewLayerContentScaleDelegate ourselves for macOS less than 10.14.
Even using MacOSX10.13.SDK the build winemac.drv also fails
:info:build dlls/winemac.drv/cocoa_window.m:476:37: error: sending 'CGRect' (aka 'struct CGRect') to parameter of incompatible type 'NSRect' (aka 'struct _NSRect') :info:build self = [super initWithFrame:frame]; :info:build ^~~~~ :info:build /opt/local/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AppKit. framework/Headers/NSView.h:130:39: note: passing argument to parameter 'frameRect' here :info:build - (instancetype)initWithFrame:(NSRect)frameRect NS_DESIGNATED_INITIALIZER; :info:build ^ :info:build dlls/winemac.drv/cocoa_window.m:523:47: error: sending 'NSRect' (aka 'struct _NSRect') to parameter of incompatible type 'CGRect' (aka 'struct CGRect') :info:build [self.layer setNeedsDisplayInRect:[self convertRectToLayer:rect]];
This will be a problem no matter what SDK is used. On i386, NSRect is not a typedef for CGRect.