27 lines
970 B
CMake
27 lines
970 B
CMake
function(SetupVulkan TARGET)
|
|
if (APPLE)
|
|
find_package(MoltenVK REQUIRED)
|
|
target_link_libraries(${TARGET} PRIVATE ${MoltenVK_LIBRARIES})
|
|
else ()
|
|
find_package(Vulkan REQUIRED)
|
|
target_link_libraries(${TARGET} PRIVATE Vulkan::Vulkan)
|
|
find_package(Vulkan OPTIONAL_COMPONENTS shaderc_combined)
|
|
if (Vulkan_shaderc_combined_FOUND)
|
|
target_link_libraries(${TARGET} PRIVATE Vulkan::shaderc_combined)
|
|
target_compile_definitions(${TARGET} PRIVATE HAS_SHADERC)
|
|
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()
|
|
|