Just be aware if you are still using juce 7 and you upgrade to Sequoia, you have to upgrade to Xcode 16 and then juceaide will no longer compile.
Using CGWindowListCreateImage now gives an error, not just a warning. If you don’t use snapshots of native windows, you can just make createNSWindowSnapshot return empty image. Be prepared to maintain your own juce fork going forward.
/juce/modules/juce_graphics/native/juce_Fonts_mac.mm:56:21: warning: 'CTFontManagerRegisterGraphicsFont' is deprecated: first deprecated in macOS 15 - Use CTFontManagerCreateFontDescriptorsFromData or CTFontManagerRegisterFontsForURL [-Wdeprecated-declarations]
/juce/modules/juce_graphics/native/juce_Fonts_mac.mm:66:21: warning: 'CTFontManagerUnregisterGraphicsFont' is deprecated: first deprecated in macOS 15 - Use the API corresponding to the one used to register the font [-Wdeprecated-declarations]
DisplayLink
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:119:52: warning: 'CVDisplayLinkCreateWithCGDisplay' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:137:54: warning: 'CVDisplayLinkSetOutputCallback' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:140:51: warning: 'CVDisplayLinkStart' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:147:13: warning: 'CVDisplayLinkStop' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:154:48: warning: 'CVDisplayLinkGetNominalOutputVideoRefreshPeriod' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
/juce/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h:168:17: warning: 'CVDisplayLinkRelease' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Wdeprecated-declarations]
This highlights the necessity of setting up good build infrastructure for JUCE project.
Its vital to not use your own development machine as the release system - and to maintain a set of VM’s for each of the MacOS versions you’re going to support, going forward.
I’ve had a lot of success with VM’s running in UTM - it took some fiddling with regards to XCode installs and Developer profiles, and so on - but now that its working, its saved me a lot of stress for the last few times that Apple have decided to deprecate things, make XCode harder to use for older code, and so on …
I agree, I have a client project for which upgrading to JUCE 8 is not possible due to JUCE issues, but sticking with JUCE 7 currently prevents me from upgrading to Sequoia.
Would you both kindly share which issue(s) you are referring to? If it’s the large bitmap issue on Windows, a fix for that is incoming. If it’s anything other than that, we would like to know as it may help us to prioritise the issues.
Hi, I haven’t switched ot Juce 8 myself but since it’s release there have been numerous posts with things not working, esp with regards to Windows. Hence I’ve stayed on 7. I’m not saying that these aren’t being fixed, I’m just saying there have been a number of issues and I’m not at the point I;m ready to move over yet. Due to the new licensing changes aswell I figure some of my clients are going to want to stay on Juce 7 as there’s nothing they need in 8, so from that point of view, having a working 7 on Sequoia would also be desirable.
Not sure why the CMAKE_C_FLAGS was necessary in addition to the CMAKE_OSX_DEPLOYMENT_TARGET so if anyone actually understands CMake advice is most welcome…