function(LinkAppleFrameworks TARGET) target_link_libraries(${TARGET} PUBLIC "-framework CoreFoundation" PUBLIC "-framework Foundation" PUBLIC "-framework CoreImage" PUBLIC "-framework CoreVideo" PUBLIC "-framework CoreGraphics" PUBLIC "-framework Metal" PUBLIC "-framework MetalPerformanceShaders" PUBLIC "-framework MetalKit" PUBLIC "-framework IOSurface" PUBLIC "-framework QuartzCore" PUBLIC "-framework AVFoundation" PUBLIC "-framework ImageIO" 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) find_library(FOUNDATION Foundation) find_library(MOBILECORESERVICES MobileCoreServices) find_library(CFNETWORK CFNetwork) find_library(SYSTEMCONFIGURATION SystemConfiguration) find_library(APPKIT AppKit) find_library(IOSURFACE IOSurface) find_library(QUARTZ Quartz) find_library(AVFOUNDATION AVFoundation) find_library(COREMEDIA CoreMedia) find_library(IMAGEIO ImageIO) # link the frameworks located above 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 ${QUARTZ}) endif() target_link_libraries(${TARGET} PUBLIC ${IOSURFACE}) target_link_libraries(${TARGET} PUBLIC ${FOUNDATION}) target_link_libraries(${TARGET} PUBLIC ${CFNETWORK}) target_link_libraries(${TARGET} PUBLIC ${SYSTEMCONFIGURATION}) target_link_libraries(${TARGET} PUBLIC ${AVFOUNDATION}) target_link_libraries(${TARGET} PUBLIC ${COREMEDIA}) target_link_libraries(${TARGET} PUBLIC ${IMAGEIO}) endfunction()