From e973c4596843c13da6039d5f9589df135fa2cefd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 15 Dec 2021 12:57:46 +0530 Subject: [PATCH] Fix build on XCode 13.1 Apple go on making it harder and harder to support multiple versions of their pathetic operating system in one code base. kIOMainPortDefault is the "non-deprecated" replacement for kIOMasterPortDefault. However, it is now marked as being available only on macOS 12 and later so it refuses to build in a codebase designed to run on earlier versions of macOS. Le bubbling sigh. According to https://developer.apple.com/documentation/iokit/kiomasterportdefault?language=objc passing NULL has the same effect and avoids the stupid warning. Hopefully this will work till Apple decides to spend their trillion dollars doing more stupid shit. --- glfw/cocoa_monitor.m | 4 ++-- glfw/cocoa_platform.h | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/glfw/cocoa_monitor.m b/glfw/cocoa_monitor.m index 1117ededa..6911aa090 100644 --- a/glfw/cocoa_monitor.m +++ b/glfw/cocoa_monitor.m @@ -61,7 +61,7 @@ getDisplayName(CGDirectDisplayID displayID, NSScreen* screen) io_service_t service; CFDictionaryRef info; - if (IOServiceGetMatchingServices(kIOMainPortDefault, + if (IOServiceGetMatchingServices(NULL, IOServiceMatching("IODisplayConnect"), &it) != 0) { @@ -259,7 +259,7 @@ static double getFallbackRefreshRate(CGDirectDisplayID displayID) io_iterator_t it; io_service_t service; - if (IOServiceGetMatchingServices(kIOMainPortDefault, + if (IOServiceGetMatchingServices(NULL, IOServiceMatching("IOFramebuffer"), &it) != 0) { diff --git a/glfw/cocoa_platform.h b/glfw/cocoa_platform.h index 8f6d7a2cf..faf3ad20d 100644 --- a/glfw/cocoa_platform.h +++ b/glfw/cocoa_platform.h @@ -39,9 +39,6 @@ typedef void* CVDisplayLinkRef; // NOTE: Many Cocoa enum values have been renamed and we need to build across // SDK versions where one is unavailable or the other deprecated // We use the newer names in code and these macros to handle compatibility -#if (MAC_OS_X_VERSION_MAX_ALLOWED < 120000) // Before macOS 12 Monterey - #define kIOMainPortDefault kIOMasterPortDefault -#endif #if MAC_OS_X_VERSION_MAX_ALLOWED < 101200 #define NSBitmapFormatAlphaNonpremultiplied NSAlphaNonpremultipliedBitmapFormat #define NSEventMaskAny NSAnyEventMask