function(SetupVulkan TARGET) if (APPLE) # Try to find xcframework of MoltenVK cmake_path(SET MoltenVK_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/") cmake_path(SET MoltenVK_XC_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/MoltenVK.xcframework") if (EXISTS "${MoltenVK_path}" AND EXISTS "${MoltenVK_XC_path}") if (EXISTS "${MoltenVK_path}/include") set(Vulkan_INCLUDE_DIR "${MoltenVK_path}/include") endif() target_link_libraries(MadVoxel_Scan PRIVATE "${MoltenVK_XC_path}/ios-arm64/libMoltenVK.a") message("Found MoltenVK xcframework: ${MoltenVK_XC_path}") endif() else () find_package(Vulkan REQUIRED) target_link_libraries(${TARGET} PRIVATE Vulkan::Vulkan) endif () target_include_directories(${TARGET} PUBLIC ${Vulkan_INCLUDE_DIR}) if (ANDROID) add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR) elseif (WIN32) add_definitions(-DVK_USE_PLATFORM_WIN32_KHR) elseif (LINUX) add_definitions(-DVK_USE_PLATFORM_XCB_KHR) find_package(XCB REQUIRED) target_link_libraries(${TARGET} PRIVATE ${XCB_LIBRARIES}) endif() endfunction()