From 8875a2d4ee6287896048167b45cde7425fab3b24 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Mon, 27 May 2024 10:23:02 +0200 Subject: [PATCH] Move apple framework linking into a reusable function --- CMakeLists.txt | 28 +--------------------------- cmake/AppleHelper.cmake | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 cmake/AppleHelper.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b7c816f..e9db368 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,33 +52,7 @@ if(IOS) set(CMAKE_OSX_DEPLOYMENT_TARGET "14.1") # The used ARKit features are only available starting with iOS 14 - target_link_libraries(openVulkanoCpp - PRIVATE "-framework CoreFoundation" - PRIVATE "-framework Foundation" - PRIVATE "-framework CoreImage" - PRIVATE "-framework CoreVideo" - PRIVATE "-framework Metal" - PRIVATE "-framework MetalPerformanceShaders" - PRIVATE "-framework ARKit" - PRIVATE "-lstdc++" - PRIVATE c++ - PRIVATE c - ) - - - # Locate system libraries on iOS - find_library(UIKIT UIKit) - find_library(FOUNDATION Foundation) - find_library(MOBILECORESERVICES MobileCoreServices) - find_library(CFNETWORK CFNetwork) - find_library(SYSTEMCONFIGURATION SystemConfiguration) - - # link the frameworks located above - target_link_libraries(openVulkanoCpp PRIVATE ${UIKIT}) - target_link_libraries(openVulkanoCpp PRIVATE ${FOUNDATION}) - target_link_libraries(openVulkanoCpp PRIVATE ${MOBILECORESERVICES}) - target_link_libraries(openVulkanoCpp PRIVATE ${CFNETWORK}) - target_link_libraries(openVulkanoCpp PRIVATE ${SYSTEMCONFIGURATION}) + LinkAppleFrameworks(openVulkanoCpp) endif () SetupVulkan(openVulkanoCpp) diff --git a/cmake/AppleHelper.cmake b/cmake/AppleHelper.cmake new file mode 100644 index 0000000..7ab0175 --- /dev/null +++ b/cmake/AppleHelper.cmake @@ -0,0 +1,29 @@ +function(LinkAppleFrameworks TARGET) + target_link_libraries(${TARGET} + PUBLIC "-framework CoreFoundation" + PUBLIC "-framework Foundation" + PUBLIC "-framework CoreImage" + PUBLIC "-framework CoreVideo" + PUBLIC "-framework Metal" + PUBLIC "-framework MetalPerformanceShaders" + PUBLIC "-framework ARKit" + PUBLIC "-lstdc++" + PUBLIC c++ + PUBLIC c + ) + + + # Locate system libraries on iOS + find_library(UIKIT UIKit) + find_library(FOUNDATION Foundation) + find_library(MOBILECORESERVICES MobileCoreServices) + find_library(CFNETWORK CFNetwork) + find_library(SYSTEMCONFIGURATION SystemConfiguration) + + # link the frameworks located above + target_link_libraries(${TARGET} PUBLIC ${UIKIT}) + 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