MNN/source/backend/vulkan/CMakeLists.txt

57 lines
2.1 KiB
CMake

option(MNN_VULKAN_IMAGE "Use Image as basic type" ON)
if (MNN_VULKAN_IMAGE)
FILE(GLOB_RECURSE MNN_Vulkan_SRC ${CMAKE_CURRENT_LIST_DIR}/image/* ${CMAKE_CURRENT_LIST_DIR}/component/* ${CMAKE_CURRENT_LIST_DIR}/runtime/* ${CMAKE_CURRENT_LIST_DIR}/vulkan/*)
else()
FILE(GLOB_RECURSE MNN_Vulkan_SRC ${CMAKE_CURRENT_LIST_DIR}/buffer/* ${CMAKE_CURRENT_LIST_DIR}/component/* ${CMAKE_CURRENT_LIST_DIR}/runtime/* ${CMAKE_CURRENT_LIST_DIR}/vulkan/*)
endif()
if(MNN_GPU_TIME_PROFILE)
if(APPLE)
message(STATUS "Timeprofile feature for Vulkan backend is currently not supported on Apple systems.")
else()
add_definitions(-DENABLE_VULKAN_TIME_PROFILE)
endif()
ENDIF()
include_directories("./")
if(MNN_USE_SYSTEM_LIB)
find_package(Vulkan REQUIRED)
set(MNN_VULKAN_LIBS ${Vulkan_LIBRARIES} PARENT_SCOPE)
else()
add_definitions(-DMNN_USE_LIB_WRAPPER)
endif()
IF(MNN_SEP_BUILD)
if (MNN_BUILD_FOR_ANDROID_COMMAND)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "../../../")
endif()
add_library(
MNN_Vulkan
SHARED
${MNN_Vulkan_SRC}
)
target_link_libraries(MNN_Vulkan MNN)
if (MNN_USE_SYSTEM_LIB)
target_link_libraries(MNN_Vulkan ${Vulkan_LIBRARY})
else()
target_link_libraries(MNN_Vulkan ${CMAKE_DL_LIBS})
endif()
ELSE()
add_library(
MNN_Vulkan
OBJECT
${MNN_Vulkan_SRC}
)
ENDIF()
include_directories("${CMAKE_CURRENT_LIST_DIR}/include/" "${CMAKE_CURRENT_LIST_DIR}/component/" "${CMAKE_CURRENT_LIST_DIR}/runtime" "${CMAKE_CURRENT_LIST_DIR}/schema/current")
if (MNN_VULKAN_IMAGE)
include_directories("${CMAKE_CURRENT_LIST_DIR}/image/execution" "${CMAKE_CURRENT_LIST_DIR}/image/backend" "${CMAKE_CURRENT_LIST_DIR}/image" "${CMAKE_CURRENT_LIST_DIR}/image/shaders")
else()
include_directories("${CMAKE_CURRENT_LIST_DIR}/buffer/execution" "${CMAKE_CURRENT_LIST_DIR}/buffer/backend" "${CMAKE_CURRENT_LIST_DIR}/buffer" "${CMAKE_CURRENT_LIST_DIR}/buffer/shaders")
endif()
if (CMAKE_SYSTEM_NAME MATCHES "^Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
endif()