diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-05-03 15:23:42 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-05-03 15:23:42 +0200 |
| commit | 70b84b491b889ecb528e46aae20b6105e0b96065 (patch) | |
| tree | f2a5b946bced5ee800295cbc8f31f1316c054384 | |
| parent | 6238ede94d280dd41414ccec916f74f48ae46bd6 (diff) | |
macOS + CMake: fix use of optional framework UniformTypeIdentifiers
| -rw-r--r-- | CMake/setup.cmake | 14 | ||||
| -rw-r--r-- | src/Fl_Native_File_Chooser_MAC.mm | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 3b6708416..5419fb7f2 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -123,7 +123,19 @@ if(APPLE) endif(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) else() set(FLTK_COCOA_FRAMEWORKS "-framework Cocoa") - if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 20.0.0)) # a.k.a. macOS version ≥ 11.0 + set(UTI_CONDITION FALSE) + 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() + 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") endif() diff --git a/src/Fl_Native_File_Chooser_MAC.mm b/src/Fl_Native_File_Chooser_MAC.mm index a10aa6c9d..2317de9c0 100644 --- a/src/Fl_Native_File_Chooser_MAC.mm +++ b/src/Fl_Native_File_Chooser_MAC.mm @@ -532,7 +532,8 @@ static char *prepareMacFilter(int count, const char *filter, char **patterns) { - (void)control_allowed_types:(const char *)p { NSString *ext = [NSString stringWithUTF8String:p]; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0 && \ + MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0 if (fl_mac_os_version >= 110000) { UTType *type = [UTType typeWithFilenameExtension:ext]; // 11.0 + framework UniformTypeIdentifiers [dialog setAllowedContentTypes:[NSArray arrayWithObject:type]]; // 11.0 |
