Add Cmake build for tim-vx
Signed-off-by: Zongwu.Yang <Zongwu.Yang@verisilicon.com>
This commit is contained in:
parent
9f70d05765
commit
5108598fd5
|
|
@ -0,0 +1,18 @@
|
|||
cmake_minimum_required (VERSION 3.3)
|
||||
project(tim-vx)
|
||||
|
||||
set(CMAKE_C_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Werror -fPIC")
|
||||
set(CMAKE_CXX_FLAGS "--std=c++14 -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Werror -fPIC")
|
||||
|
||||
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||
set(OVXLIB_API_ATTR "__attribute__\(\(visibility\(\"default\"\)\)\)")
|
||||
message(${OVXLIB_API_ATTR})
|
||||
add_definitions(-DOVXLIB_API=${OVXLIB_API_ATTR})
|
||||
|
||||
# find dependencies
|
||||
find_package(OvxDrv REQUIRED PATHS ${PROJECT_SOURCE_DIR}/cmake)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include/tim/vx)
|
||||
include_directories(${OVXDRV_INCLUDE_DIRS})
|
||||
|
||||
add_subdirectory("src/tim/vx")
|
||||
add_subdirectory("samples/lenet")
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
message("==================================================")
|
||||
message("Processing OvxDrvConfig.cmake ...")
|
||||
set(PKG_NAME "OVXDRV")
|
||||
|
||||
set(OVXDRV_INCLUDE_DIRS)
|
||||
list(APPEND OVXDRV_INCLUDE_DIRS
|
||||
${PROJECT_SOURCE_DIR}/prebuilt-sdk/x86_64_linux/include
|
||||
${PROJECT_SOURCE_DIR}/prebuilt-sdk/x86_64_linux/include/CL)
|
||||
|
||||
set(LIBS CLC GAL OpenVX OpenVXU VSC ArchModelSw NNArchPerf)
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
# todo (sven) add any library if only avaiable in cross build
|
||||
endif()
|
||||
|
||||
list(LENGTH LIBS count)
|
||||
math(EXPR count "${count} - 1")
|
||||
foreach(i RANGE ${count})
|
||||
list(GET LIBS ${i} lib)
|
||||
find_library(${PKG_NAME}_FOUND_LIB_${i}
|
||||
NAMES ${lib}
|
||||
PATHS ${PROJECT_SOURCE_DIR}/prebuilt-sdk/x86_64_linux/lib
|
||||
)
|
||||
message("found lib ${lib} at ${${PKG_NAME}_FOUND_LIB_${i}}")
|
||||
list(APPEND ${PKG_NAME}_LIBRARIES ${${PKG_NAME}_FOUND_LIB_${i}})
|
||||
|
||||
message("--->" ${PKG_NAME}_LIBRARIES ${${PKG_NAME}_FOUND_LIB_${i}})
|
||||
endforeach()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${PKG_NAME} DEFAULT_MSG
|
||||
${PKG_NAME}_LIBRARIES)
|
||||
|
||||
mark_as_advanced(${PKG_NAME}_INCLUDE_DIRS ${PKG_NAME}_LIBRARIES)
|
||||
|
||||
message("==================================================")
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
message("samples/lenet")
|
||||
|
||||
set(target_name "lenet")
|
||||
|
||||
aux_source_directory(. SRC)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
include_directories(./)
|
||||
|
||||
add_executable(${target_name} ${SRC})
|
||||
target_link_libraries(${target_name} ${OVXDRV_LIBRARIES} tim-vx)
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
message("src/tim/vx")
|
||||
|
||||
set(target_name "tim-vx")
|
||||
|
||||
add_subdirectory("internal")
|
||||
|
||||
aux_source_directory(. VX_SRC)
|
||||
aux_source_directory(ops OPS_SRC)
|
||||
|
||||
set(SRC)
|
||||
list(APPEND SRC
|
||||
${VX_SRC}
|
||||
${OPS_SRC}
|
||||
)
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include/tim/vx)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/src/tim/vx)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/src/tim/vx/internal/include)
|
||||
|
||||
add_library(${target_name} SHARED ${SRC})
|
||||
target_link_libraries(${target_name} PRIVATE tim_internal)
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
message("src/tim/vx/internal")
|
||||
|
||||
set(lib_name "tim_internal")
|
||||
|
||||
aux_source_directory(src INTERNAL_SRC)
|
||||
aux_source_directory(src/kernel INTERNAL_KERNEL)
|
||||
aux_source_directory(src/kernel/cl INTERNAL_KERNEL_CL)
|
||||
aux_source_directory(src/kernel/cpu INTERNAL_KERNEL_CPU)
|
||||
aux_source_directory(src/kernel/evis INTERNAL_KERNEL_EVIS)
|
||||
aux_source_directory(src/kernel/vx INTERNAL_KERNEL_VX)
|
||||
aux_source_directory(src/ops INTERNAL_OPS)
|
||||
aux_source_directory(src/client INTERNAL_CLIENT)
|
||||
aux_source_directory(src/libnnext INTERNAL_LIBNNEXT)
|
||||
aux_source_directory(src/libnnext/ops/kernel INTERNAL_LIBNNEXT_OPS_KERNEL)
|
||||
aux_source_directory(src/quantization INTERNAL_QUANTIZATION)
|
||||
aux_source_directory(src/custom/ops INTERNAL_CUSTOM_OPS)
|
||||
aux_source_directory(src/custom/ops/kernel INTERNAL_CUSTOM_OPS_KERNEL)
|
||||
aux_source_directory(src/utils INTERNAL_UTILS)
|
||||
|
||||
set(SRC)
|
||||
list(APPEND SRC
|
||||
${INTERNAL_SRC}
|
||||
${INTERNAL_KERNEL}
|
||||
${INTERNAL_KERNEL_CL}
|
||||
${INTERNAL_KERNEL_CPU}
|
||||
${INTERNAL_KERNEL_EVIS}
|
||||
${INTERNAL_KERNEL_VX}
|
||||
${INTERNAL_OPS}
|
||||
${INTERNAL_CLIENT}
|
||||
${INTERNAL_LIBNNEXT}
|
||||
${INTERNAL_LIBNNEXT_OPS_KERNEL}
|
||||
${INTERNAL_QUANTIZATION}
|
||||
${INTERNAL_CUSTOM_OPS}
|
||||
${INTERNAL_CUSTOM_OPS_KERNEL}
|
||||
${INTERNAL_UTILS}
|
||||
)
|
||||
|
||||
include_directories(include)
|
||||
include_directories(${OVXDRV_INCLUDE_DIRS})
|
||||
|
||||
add_library(${lib_name} ${SRC})
|
||||
target_link_libraries(${lib_name} PRIVATE ${OVXDRV_LIBRARIES})
|
||||
Loading…
Reference in New Issue