From 7d98413d4621b964105f346d9e5a2361a0ce9bfc Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:52:37 +0200 Subject: macOS 15.0 Sequoia: fix capture of window titlebars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous procedure using CGWindowListCreateImageFromArray() is obsoleted in macOS 15.0 . The new procedure requires an additional framework: ScreenCaptureKit; FLTK uses it only for macOS ≥ 15.0 --- CMake/setup.cmake | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'CMake') diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 5419fb7f2..04cc5d90a 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -123,23 +123,31 @@ if(APPLE) endif(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) else() set(FLTK_COCOA_FRAMEWORKS "-framework Cocoa") - set(UTI_CONDITION FALSE) + set(UTI_CONDITION FALSE) # TRUE when framework UniformTypeIdentifiers is used + set(SCK_CONDITION FALSE) # TRUE when framework ScreenCaptureKit is used string(LENGTH "${CMAKE_OSX_DEPLOYMENT_TARGET}" TARGET_LEN) string(LENGTH "${CMAKE_SYSTEM_VERSION}" SDK_LEN) if(TARGET_LEN GREATER 0) if( ${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_GREATER_EQUAL 11.0) set(UTI_CONDITION TRUE) endif() + if( ${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_GREATER_EQUAL 15.0) + set(SCK_CONDITION TRUE) + endif() elseif(SDK_LEN GREATER 0) if( ${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 20.0 ) set(UTI_CONDITION TRUE) endif() - endif() - if(UTI_CONDITION) # a.k.a. macOS version ≥ 11.0 - if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386")) - list(APPEND FLTK_COCOA_FRAMEWORKS "-framework UniformTypeIdentifiers") + if( ${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 24.0 ) + set(SCK_CONDITION TRUE) endif() endif() + if(UTI_CONDITION) # a.k.a. macOS version ≥ 11.0 + list(APPEND FLTK_COCOA_FRAMEWORKS "-framework UniformTypeIdentifiers") + if(SCK_CONDITION) # a.k.a. macOS version ≥ 15.0 + list(APPEND FLTK_COCOA_FRAMEWORKS "-framework ScreenCaptureKit") + endif(SCK_CONDITION) + endif(UTI_CONDITION) endif(FLTK_BACKEND_X11) endif(APPLE) -- cgit v1.2.3