From 6f3d0b3cdb38f89f86a31e2dcb05ffc02cb262f4 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 21 Jan 2025 17:23:08 -0800 Subject: [PATCH] Fixed build when using an older Xcode SDK Fixes https://github.com/libsdl-org/SDL/issues/12048 --- src/joystick/apple/SDL_mfijoystick.m | 4 +--- src/video/uikit/SDL_uikitpen.m | 29 ++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/joystick/apple/SDL_mfijoystick.m b/src/joystick/apple/SDL_mfijoystick.m index 23d6b23f80..811a9f1ae7 100644 --- a/src/joystick/apple/SDL_mfijoystick.m +++ b/src/joystick/apple/SDL_mfijoystick.m @@ -50,9 +50,7 @@ static id disconnectObserver = nil; #include -/* remove compilation warnings for strict builds by defining these selectors, even though - * they are only ever used indirectly through objc_msgSend - */ +// Fix build errors when using an older SDK by defining these selectors @interface GCController (SDL) #if !((__IPHONE_OS_VERSION_MAX_ALLOWED >= 140500) || (__APPLETV_OS_VERSION_MAX_ALLOWED >= 140500) || (__MAC_OS_X_VERSION_MAX_ALLOWED >= 110300)) @property(class, nonatomic, readwrite) BOOL shouldMonitorBackgroundEvents; diff --git a/src/video/uikit/SDL_uikitpen.m b/src/video/uikit/SDL_uikitpen.m index 622513c24d..520968163d 100644 --- a/src/video/uikit/SDL_uikitpen.m +++ b/src/video/uikit/SDL_uikitpen.m @@ -28,6 +28,31 @@ #include "../../events/SDL_pen_c.h" +// Fix build errors when using an older SDK by defining these selectors +#if !defined(SDL_PLATFORM_TVOS) + +@interface UITouch (SDL) +#if !(__IPHONE_OS_VERSION_MAX_ALLOWED >= 170500) +@property (nonatomic, readonly) CGFloat rollAngle; +#endif +@end + +@interface UIHoverGestureRecognizer (SDL) +#if !(__IPHONE_OS_VERSION_MAX_ALLOWED >= 160100) +@property (nonatomic, readonly) CGFloat zOffset; +#endif +#if !(__IPHONE_OS_VERSION_MAX_ALLOWED >= 160400) +- (CGFloat) azimuthAngleInView:(UIView *) view; + +@property (nonatomic, readonly) CGFloat altitudeAngle; +#endif +#if !(__IPHONE_OS_VERSION_MAX_ALLOWED >= 170500) +@property (nonatomic, readonly) CGFloat rollAngle; +#endif +@end + +#endif // !SDL_PLATFORM_TVOS + static SDL_PenID apple_pencil_id = 0; bool UIKit_InitPen(SDL_VideoDevice *_this) @@ -142,11 +167,11 @@ extern void UIKit_HandlePenHover(SDL_uikitview *view, UIHoverGestureRecognizer * static void UIKit_HandlePenAxesFromUITouch(SDL_uikitview *view, UITouch *pencil) { float rollAngle = 0.0f; - #if !defined(SDL_PLATFORM_TVOS) +#if !defined(SDL_PLATFORM_TVOS) if (@available(iOS 17.5, *)) { rollAngle = (float) [pencil rollAngle]; } - #endif +#endif SDL_Window *window = [view getSDLWindow]; const CGPoint point = [pencil locationInView:view];