32 lines
1.3 KiB
CMake
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()
|
|
|