Skip to content

Commit 23fb568

Browse files
MasterJH5574tqchen
andauthored
[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]>
1 parent 8f9f605 commit 23fb568

File tree

1 file changed

+32
-25
lines changed

1 file changed

+32
-25
lines changed

cmake/utils/FindVulkan.cmake

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -37,36 +37,43 @@ macro(find_vulkan use_vulkan use_khronos_spirv)
3737
if(IS_DIRECTORY ${__use_vulkan})
3838
set(__vulkan_sdk ${__use_vulkan})
3939
message(STATUS "Custom Vulkan SDK PATH=" ${__use_vulkan})
40-
elseif(IS_DIRECTORY $ENV{VULKAN_SDK})
41-
set(__vulkan_sdk $ENV{VULKAN_SDK})
42-
else()
43-
set(__vulkan_sdk "")
44-
endif()
40+
elseif(IS_DIRECTORY $ENV{VULKAN_SDK})
41+
set(__vulkan_sdk $ENV{VULKAN_SDK})
42+
else()
43+
set(__vulkan_sdk "")
44+
endif()
4545

4646

47-
if(IS_DIRECTORY ${use_khronos_spirv})
48-
set(__use_khronos_spirv ${use_khronos_spirv})
49-
message(STATUS "Custom khronos spirv PATH=" ${__use_khronos_spirv})
50-
else()
51-
set(__use_khronos_spirv "")
52-
endif()
47+
if(IS_DIRECTORY ${use_khronos_spirv})
48+
set(__use_khronos_spirv ${use_khronos_spirv})
49+
message(STATUS "Custom khronos spirv PATH=" ${__use_khronos_spirv})
50+
else()
51+
set(__use_khronos_spirv "")
52+
endif()
5353

54+
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
55+
set(VULKAN_NDK_SRC ${CMAKE_ANDROID_NDK}/sources/third_party/vulkan/src)
56+
set(Vulkan_INCLUDE_DIRS ${VULKAN_NDK_SRC}/include)
57+
set(Vulkan_FOUND TRUE)
58+
message(STATUS "Android Vulkan_INCLUDE_DIRS=" ${Vulkan_INCLUDE_DIRS})
59+
message(STATUS "Skip finding SPIRV in Android, make sure you only build tvm runtime.")
60+
return()
61+
endif()
5462

55-
if(__vulkan_sdk)
56-
set(Vulkan_INCLUDE_DIRS ${__vulkan_sdk}/include)
57-
find_library(Vulkan_LIBRARY NAMES vulkan vulkan-1 PATHS ${__vulkan_sdk}/lib)
58-
if(Vulkan_LIBRARY)
59-
set(Vulkan_FOUND TRUE)
60-
endif()
61-
endif(__vulkan_sdk)
63+
if(__vulkan_sdk)
64+
set(Vulkan_INCLUDE_DIRS ${__vulkan_sdk}/include)
65+
find_library(Vulkan_LIBRARY NAMES vulkan vulkan-1 PATHS ${__vulkan_sdk}/lib)
66+
if(Vulkan_LIBRARY)
67+
set(Vulkan_FOUND TRUE)
68+
endif()
69+
endif(__vulkan_sdk)
6270

63-
# resort to find vulkan of option is on
64-
if(NOT Vulkan_FOUND)
65-
if(${__use_vulkan} MATCHES ${IS_TRUE_PATTERN})
66-
find_package(Vulkan QUIET)
67-
endif()
68-
endif()
69-
# additional libraries
71+
# resort to find vulkan of option is on
72+
if(NOT Vulkan_FOUND)
73+
if(${__use_vulkan} MATCHES ${IS_TRUE_PATTERN})
74+
find_package(Vulkan QUIET)
75+
endif()
76+
endif()
7077

7178
if(Vulkan_FOUND)
7279
get_filename_component(VULKAN_LIBRARY_PATH ${Vulkan_LIBRARY} DIRECTORY)

0 commit comments

Comments
 (0)