This is an automated email from the ASF dual-hosted git repository.
echuraev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 23fb568521 [CMAKE] Add Vulkan header for Android (#15229)
23fb568521 is described below
commit 23fb56852122919a2ea896000d87be163e2b1bb5
Author: Ruihang Lai <[email protected]>
AuthorDate: Tue Jul 4 22:41:42 2023 -0700
[CMAKE] Add Vulkan header for Android (#15229)
This PR enhances the Vulkan search for Android NDK, so that we can
find the Vulkan header for Android builds.
Co-authored-by: tqchen <[email protected]>
---
cmake/utils/FindVulkan.cmake | 57 +++++++++++++++++++++++++-------------------
1 file changed, 32 insertions(+), 25 deletions(-)
diff --git a/cmake/utils/FindVulkan.cmake b/cmake/utils/FindVulkan.cmake
index a2a6fb6035..032ff1dffa 100644
--- a/cmake/utils/FindVulkan.cmake
+++ b/cmake/utils/FindVulkan.cmake
@@ -37,36 +37,43 @@ macro(find_vulkan use_vulkan use_khronos_spirv)
if(IS_DIRECTORY ${__use_vulkan})
set(__vulkan_sdk ${__use_vulkan})
message(STATUS "Custom Vulkan SDK PATH=" ${__use_vulkan})
- elseif(IS_DIRECTORY $ENV{VULKAN_SDK})
- set(__vulkan_sdk $ENV{VULKAN_SDK})
- else()
- set(__vulkan_sdk "")
- endif()
+ elseif(IS_DIRECTORY $ENV{VULKAN_SDK})
+ set(__vulkan_sdk $ENV{VULKAN_SDK})
+ else()
+ set(__vulkan_sdk "")
+ endif()
- if(IS_DIRECTORY ${use_khronos_spirv})
- set(__use_khronos_spirv ${use_khronos_spirv})
- message(STATUS "Custom khronos spirv PATH=" ${__use_khronos_spirv})
- else()
- set(__use_khronos_spirv "")
- endif()
+ if(IS_DIRECTORY ${use_khronos_spirv})
+ set(__use_khronos_spirv ${use_khronos_spirv})
+ message(STATUS "Custom khronos spirv PATH=" ${__use_khronos_spirv})
+ else()
+ set(__use_khronos_spirv "")
+ endif()
+ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
+ set(VULKAN_NDK_SRC ${CMAKE_ANDROID_NDK}/sources/third_party/vulkan/src)
+ set(Vulkan_INCLUDE_DIRS ${VULKAN_NDK_SRC}/include)
+ set(Vulkan_FOUND TRUE)
+ message(STATUS "Android Vulkan_INCLUDE_DIRS=" ${Vulkan_INCLUDE_DIRS})
+ message(STATUS "Skip finding SPIRV in Android, make sure you only build
tvm runtime.")
+ return()
+ endif()
- if(__vulkan_sdk)
- set(Vulkan_INCLUDE_DIRS ${__vulkan_sdk}/include)
- find_library(Vulkan_LIBRARY NAMES vulkan vulkan-1 PATHS
${__vulkan_sdk}/lib)
- if(Vulkan_LIBRARY)
- set(Vulkan_FOUND TRUE)
- endif()
- endif(__vulkan_sdk)
+ if(__vulkan_sdk)
+ set(Vulkan_INCLUDE_DIRS ${__vulkan_sdk}/include)
+ find_library(Vulkan_LIBRARY NAMES vulkan vulkan-1 PATHS
${__vulkan_sdk}/lib)
+ if(Vulkan_LIBRARY)
+ set(Vulkan_FOUND TRUE)
+ endif()
+ endif(__vulkan_sdk)
- # resort to find vulkan of option is on
- if(NOT Vulkan_FOUND)
- if(${__use_vulkan} MATCHES ${IS_TRUE_PATTERN})
- find_package(Vulkan QUIET)
- endif()
- endif()
- # additional libraries
+ # resort to find vulkan of option is on
+ if(NOT Vulkan_FOUND)
+ if(${__use_vulkan} MATCHES ${IS_TRUE_PATTERN})
+ find_package(Vulkan QUIET)
+ endif()
+ endif()
if(Vulkan_FOUND)
get_filename_component(VULKAN_LIBRARY_PATH ${Vulkan_LIBRARY} DIRECTORY)