From 6c9af621b52e4d03f3fc11dc72393e18b584dae3 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sun, 28 Jul 2024 23:45:17 +0200 Subject: [PATCH] Fix some linking issues on MacOS --- CMakeLists.txt | 3 ++- cmake/AppleHelper.cmake | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 583bbfa..5af7803 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,7 +74,8 @@ if(IOS) set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_BUNDLE_IDENTIFIER}) set(CMAKE_OSX_DEPLOYMENT_TARGET "14.1") # The used ARKit features are only available starting with iOS 14 - +endif() +if(APPLE) LinkAppleFrameworks(openVulkanoCpp) endif () diff --git a/cmake/AppleHelper.cmake b/cmake/AppleHelper.cmake index 7ab0175..c38f88f 100644 --- a/cmake/AppleHelper.cmake +++ b/cmake/AppleHelper.cmake @@ -6,12 +6,14 @@ function(LinkAppleFrameworks TARGET) PUBLIC "-framework CoreVideo" PUBLIC "-framework Metal" PUBLIC "-framework MetalPerformanceShaders" - PUBLIC "-framework ARKit" PUBLIC "-lstdc++" PUBLIC c++ PUBLIC c ) + if(IOS) + target_link_libraries(${TARGET} PUBLIC "-framework ARKit") + endif() # Locate system libraries on iOS find_library(UIKIT UIKit) @@ -19,11 +21,20 @@ function(LinkAppleFrameworks TARGET) find_library(MOBILECORESERVICES MobileCoreServices) find_library(CFNETWORK CFNetwork) find_library(SYSTEMCONFIGURATION SystemConfiguration) + find_library(APPKIT AppKit) + find_library(IOSURFACE IOSurface) + find_library(QUARTZ Quartz) # link the frameworks located above - target_link_libraries(${TARGET} PUBLIC ${UIKIT}) + if(IOS) + target_link_libraries(${TARGET} PUBLIC ${UIKIT}) + target_link_libraries(${TARGET} PUBLIC ${MOBILECORESERVICES}) + else() + target_link_libraries(${TARGET} PUBLIC ${APPKIT}) + target_link_libraries(${TARGET} PUBLIC ${IOSURFACE}) + target_link_libraries(${TARGET} PUBLIC ${QUARTZ}) + endif() target_link_libraries(${TARGET} PUBLIC ${FOUNDATION}) - target_link_libraries(${TARGET} PUBLIC ${MOBILECORESERVICES}) target_link_libraries(${TARGET} PUBLIC ${CFNETWORK}) target_link_libraries(${TARGET} PUBLIC ${SYSTEMCONFIGURATION}) -endfunction() \ No newline at end of file +endfunction()