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