On 24 Jun 2020, at 18:28, Thiago Macieira <thiago.macie...@intel.com<mailto:thiago.macie...@intel.com>> wrote:
On Wednesday, 24 June 2020 08:50:17 PDT David M. Cotter wrote: Apple ... said that they are still supporting carbon ... on the ARM based Macs wait what? reference please? https://developer.apple.com/documentation/xcode/porting_your_macos_apps_to_apple_silicon?language=objc carbon is 32bit. 32bit is dead on Catalina, right? and Big Sur is post-catalina. so... have i missed something? I don't think Lars used the right term when he said Carbon. Carbon.framework definitely is non-working in 64-bit mode: $ objdump -f /System/Library/Frameworks/Carbon.framework/Carbon /System/Library/Frameworks/Carbon.framework/Carbon: file format Mach-O 64- bit x86-64 Actually, Carbon is still around, and 64-bit: ❯ otool -h /System/Library/Frameworks/Carbon.framework/Carbon Mach header magic cputype cpusubtype caps filetype ncmds sizeofcmds flags 0xfeedfacf 16777223 3 0x00 6 24 2080 0x02000085 And we link to it still, due to needing a few functions from it still: ❯ git grep -e "-framework Carbon" src/plugins/platforms/cocoa/cocoa.pro:98:LIBS += -framework AppKit -framework CoreServices -framework Carbon -framework IOKit -framework QuartzCore -framework CoreVideo -framework Metal -framework IOSurface Undefined symbols for architecture x86_64: "_GetCurrentKeyModifiers", referenced from: QCocoaKeyMapper::queryKeyboardModifiers() in qcocoakeymapper.mm.o "_LMGetKbdType", referenced from: QCocoaKeyMapper::updateKeyboard() in qcocoakeymapper.mm.o "_TISCopyCurrentKeyboardInputSource", referenced from: QCocoaInputContext::updateLocale() in qcocoainputcontext.mm.o QCocoaKeyMapper::updateKeyboard() in qcocoakeymapper.mm.o "_TISCopyInputMethodKeyboardLayoutOverride", referenced from: QCocoaKeyMapper::updateKeyboard() in qcocoakeymapper.mm.o "_TISGetInputSourceProperty", referenced from: QCocoaInputContext::updateLocale() in qcocoainputcontext.mm.o QCocoaKeyMapper::updateKeyboard() in qcocoakeymapper.mm.o "_kTISPropertyInputSourceLanguages", referenced from: QCocoaInputContext::updateLocale() in qcocoainputcontext.mm.o "_kTISPropertyUnicodeKeyLayoutData", referenced from: QCocoaKeyMapper::updateKeyboard() in qcocoakeymapper.mm.o What he meant is that Qt uses a number of C APIs even in 64-bit mode that used to be loosely called "Carbon" back in the day, opposing to the Objective C APIs called "Cocoa". Example: CoreFoundation. Carbon is an umbrella framework for these frameworks: ❯ ls /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks CommonPanels.framework ImageCapture.framework Print.framework HIToolbox.framework Ink.framework SecurityHI.framework Help.framework OpenScripting.framework SpeechRecognition.framework CoreFoundation and other CoreFoo frameworks are not part of Carbon. They will persist even when Carbon is removed. Cheers, Tor Arne
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest