From 4742d830beb17bd92fed83eb58cede09bfddd576 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sun, 24 Mar 2024 08:48:45 +0100 Subject: CMake for macOS platform: improve handling of -framework link arguments --- CMake/fl_add_library.cmake | 9 +++------ CMake/setup.cmake | 6 ++---- CMake/variables.cmake | 7 +------ 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/CMake/fl_add_library.cmake b/CMake/fl_add_library.cmake index 3f57e7a3d..ebf9e28c0 100644 --- a/CMake/fl_add_library.cmake +++ b/CMake/fl_add_library.cmake @@ -153,12 +153,9 @@ function(fl_add_library LIBNAME LIBTYPE SOURCES) ) if(APPLE AND NOT FLTK_BACKEND_X11) - target_link_libraries(${TARGET_NAME} PUBLIC "-framework Cocoa") - if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 20.0.0)) # a.k.a. macOS version ≥ 11.0 - if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386")) - target_link_libraries(${TARGET_NAME} PUBLIC "-framework UniformTypeIdentifiers") - endif() - endif() + foreach(item ${FLTK_COCOA_FRAMEWORKS}) + target_link_libraries(${TARGET_NAME} PUBLIC "${item}") + endforeach() endif() # we must link fltk with cairo if Cairo or Wayland is enabled (or both) diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 69835fcb8..ed00be391 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -124,12 +124,10 @@ if(APPLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_HAS_THREAD_API_PTHREAD") endif(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 17.0.0)) else() - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa") + set(FLTK_COCOA_FRAMEWORKS "-framework Cocoa") if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 20.0.0)) # a.k.a. macOS version ≥ 11.0 if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386")) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework UniformTypeIdentifiers") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework UniformTypeIdentifiers") + list(APPEND FLTK_COCOA_FRAMEWORKS "-framework UniformTypeIdentifiers") endif() endif() endif(FLTK_BACKEND_X11) diff --git a/CMake/variables.cmake b/CMake/variables.cmake index 981cd077c..cbf6ffdf3 100644 --- a/CMake/variables.cmake +++ b/CMake/variables.cmake @@ -43,12 +43,7 @@ endif(DEBUG_VARIABLES_CMAKE) if(WIN32) list(APPEND FLTK_LDLIBS -lole32 -luuid -lcomctl32 -lws2_32) elseif(APPLE AND NOT FLTK_BACKEND_X11) - list(APPEND FLTK_LDLIBS "-framework Cocoa") - if(NOT(${CMAKE_SYSTEM_VERSION} VERSION_LESS 20.0.0)) # a.k.a. macOS version ≥ 11.0 - if (NOT (CMAKE_OSX_ARCHITECTURES STREQUAL "ppc" OR CMAKE_OSX_ARCHITECTURES STREQUAL "i386")) - list(APPEND FLTK_LDLIBS "-framework UniformTypeIdentifiers") - endif() - endif() + list(APPEND FLTK_LDLIBS ${FLTK_COCOA_FRAMEWORKS}) elseif(FLTK_BACKEND_WAYLAND) list(APPEND FLTK_LDLIBS "-lwayland-cursor -lwayland-client -lxkbcommon -ldbus-1") if(USE_SYSTEM_LIBDECOR) -- cgit v1.2.3