xref: /aosp_15_r20/external/pytorch/cmake/VulkanDependencies.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1if(NOT USE_VULKAN)
2  return()
3endif()
4
5if(ANDROID)
6  if(NOT ANDROID_NDK)
7    message(FATAL_ERROR "USE_VULKAN requires ANDROID_NDK set.")
8  endif()
9
10  # Vulkan from ANDROID_NDK
11  set(VULKAN_INCLUDE_DIR "${ANDROID_NDK}/sources/third_party/vulkan/src/include")
12  message(STATUS "VULKAN_INCLUDE_DIR:${VULKAN_INCLUDE_DIR}")
13
14  set(VULKAN_ANDROID_NDK_WRAPPER_DIR "${ANDROID_NDK}/sources/third_party/vulkan/src/common")
15  message(STATUS "Vulkan_ANDROID_NDK_WRAPPER_DIR:${VULKAN_ANDROID_NDK_WRAPPER_DIR}")
16  set(VULKAN_WRAPPER_DIR "${VULKAN_ANDROID_NDK_WRAPPER_DIR}")
17
18  add_library(
19    VulkanWrapper
20    STATIC
21    ${VULKAN_WRAPPER_DIR}/vulkan_wrapper.h
22    ${VULKAN_WRAPPER_DIR}/vulkan_wrapper.cpp)
23
24  target_include_directories(VulkanWrapper PUBLIC .)
25  target_include_directories(VulkanWrapper PUBLIC "${VULKAN_INCLUDE_DIR}")
26  target_link_libraries(VulkanWrapper ${CMAKE_DL_LIBS})
27
28  string(APPEND Vulkan_DEFINES " -DUSE_VULKAN_WRAPPER")
29  list(APPEND Vulkan_INCLUDES ${VULKAN_WRAPPER_DIR})
30  list(APPEND Vulkan_LIBS VulkanWrapper)
31
32else()
33  find_package(Vulkan)
34
35  if(NOT Vulkan_FOUND)
36    message(FATAL_ERROR "USE_VULKAN requires either Vulkan installed on system path or environment var VULKAN_SDK set.")
37  endif()
38
39  list(APPEND Vulkan_INCLUDES ${Vulkan_INCLUDE_DIRS})
40  list(APPEND Vulkan_LIBS ${Vulkan_LIBRARIES})
41
42  set(GOOGLE_SHADERC_INCLUDE_SEARCH_PATH ${Vulkan_INCLUDE_DIR})
43  set(GOOGLE_SHADERC_LIBRARY_SEARCH_PATH ${Vulkan_LIBRARY})
44endif()
45