function(SetupVulkan TARGET) if (APPLE) find_package(MoltenVK REQUIRED) target_link_libraries(${TARGET} PRIVATE ${MoltenVK_LIBRARIES}) else () find_package(Vulkan REQUIRED) get_filename_component(Vulkan_SDK_DIR "${Vulkan_LIBRARIES}" DIRECTORY) # Get VulkanSDK/[version]/Bin target_link_libraries(${TARGET} PRIVATE Vulkan::Vulkan) if(CMAKE_BUILD_TYPE MATCHES "Debug") target_link_libraries(${TARGET} PRIVATE "${Vulkan_SDK_DIR}/shaderc_combinedd.lib" "${Vulkan_SDK_DIR}/spirv-cross-cored.lib" "${Vulkan_SDK_DIR}/spirv-cross-glsld.lib" "${Vulkan_SDK_DIR}/spirv-cross-hlsld.lib") else() target_link_libraries(${TARGET} PRIVATE "${Vulkan_SDK_DIR}/shaderc_combined.lib" "${Vulkan_SDK_DIR}/spirv-cross-core.lib" "${Vulkan_SDK_DIR}/spirv-cross-glsl.lib" "${Vulkan_SDK_DIR}/spirv-cross-hlsl.lib") endif() 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()