Files
OpenVulkano/cmake/SetupVulkan.cmake
2024-07-15 17:31:02 +03:00

32 lines
1.3 KiB
CMake

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()