summaryrefslogtreecommitdiff
path: root/CMake
diff options
context:
space:
mode:
Diffstat (limited to 'CMake')
-rw-r--r--CMake/macOSMaxAllowed.c8
-rw-r--r--CMake/setup.cmake17
2 files changed, 23 insertions, 2 deletions
diff --git a/CMake/macOSMaxAllowed.c b/CMake/macOSMaxAllowed.c
new file mode 100644
index 000000000..625bcb6af
--- /dev/null
+++ b/CMake/macOSMaxAllowed.c
@@ -0,0 +1,8 @@
+#include <Availability.h>
+#include <stdio.h>
+
+int main(int argc, char **argv) {
+ unsigned int ver = __MAC_OS_X_VERSION_MAX_ALLOWED;
+ printf("%d.%d.%d", ver/10000, (ver/100)%100, ver%100);
+ return 0;
+}
diff --git a/CMake/setup.cmake b/CMake/setup.cmake
index dee004ccf..8c06f2782 100644
--- a/CMake/setup.cmake
+++ b/CMake/setup.cmake
@@ -117,6 +117,19 @@ if(APPLE)
set(HAVE_VSNPRINTF 1)
set(HAVE_SCANDIR 1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
+ # Retrieve the value of the macOS compile-time macro
+ # __MAC_OS_X_VERSION_MAX_ALLOWED. This is needed to decide which
+ # frameworks must be linked later.
+ try_run(
+ RUN_RESULT COMPILE_RESULT
+ SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/CMake/macOSMaxAllowed.c
+ RUN_OUTPUT_VARIABLE MAC_OS_X_VERSION_MAX_ALLOWED
+ )
+ if (NOT COMPILE_RESULT)
+ set(MAC_OS_X_VERSION_MAX_ALLOWED ${CURRENT_OSX_VERSION})
+ endif()
+ fl_debug_var(CMAKE_OSX_DEPLOYMENT_TARGET)
+ fl_debug_var(MAC_OS_X_VERSION_MAX_ALLOWED)
if(FLTK_BACKEND_X11)
if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) # a.k.a. macOS version ≥ 10.13
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_HAS_THREAD_API_PTHREAD")
@@ -124,10 +137,10 @@ if(APPLE)
else()
set(FLTK_COCOA_FRAMEWORKS "-framework Cocoa")
if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386"))
- if(${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 20.0) # a.k.a. macOS version ≥ 11.0
+ if(${MAC_OS_X_VERSION_MAX_ALLOWED} VERSION_GREATER_EQUAL 11.0)
list(APPEND FLTK_COCOA_FRAMEWORKS "-weak_framework UniformTypeIdentifiers")
endif()
- if(${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 24.0) # a.k.a. macOS version ≥ 15.0
+ if(${MAC_OS_X_VERSION_MAX_ALLOWED} VERSION_GREATER_EQUAL 15.0)
list(APPEND FLTK_COCOA_FRAMEWORKS "-weak_framework ScreenCaptureKit")
endif()
endif()