Add cross compile for A311D
* Support auto-downloading toolchain and SDK from http * Support one-click cross compilation Usage: mkdir build && cd build cmake .. -DHARDWARE=A311D make -j4 Signed-off-by: Zongwu.Yang <Zongwu.Yang@verisilicon.com>
This commit is contained in:
parent
dc9931e126
commit
eb01d28a1a
|
|
@ -9,8 +9,12 @@ 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)
|
||||
if("${HARDWARE}" STREQUAL "A311D")
|
||||
include(cmake/A311D.cmake)
|
||||
else()
|
||||
include(cmake/X86_64.cmake)
|
||||
endif()
|
||||
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include/tim/vx)
|
||||
include_directories(${OVXDRV_INCLUDE_DIRS})
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
set(PKG_NAME "OVXDRV")
|
||||
message("Downloading A311D toolchain ...")
|
||||
file(DOWNLOAD "https://cnbj1.fds.api.xiaomi.com/mace/third-party/gcc-linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz"
|
||||
${PROJECT_SOURCE_DIR}/build/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
|
||||
EXPECTED_MD5 "6ec789d642584a01e240ab3366599dbb"
|
||||
SHOW_PROGRESS)
|
||||
execute_process(COMMAND
|
||||
tar xf ${PROJECT_SOURCE_DIR}/build/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz)
|
||||
|
||||
set(TOOLCHAIN_DIR ${PROJECT_SOURCE_DIR}/build/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu)
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-g++)
|
||||
set(CMAKE_AR ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc-ar)
|
||||
set(CMAKE_AS ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc-as)
|
||||
set(CMAKE_LD ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc-ld)
|
||||
|
||||
message("Downloading A311D SDK ...")
|
||||
file(DOWNLOAD "https://github.com/VeriSilicon/TIM-VX/releases/download/v1.1.28/aarch64_A311D_D312513_A294074_R311680_T312233_O312045.tgz"
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045.tgz
|
||||
EXPECTED_MD5 "26f4766c25a4776caf41b93e9b1c6af9"
|
||||
SHOW_PROGRESS)
|
||||
execute_process(COMMAND
|
||||
tar xf ${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045.tgz)
|
||||
|
||||
set(OVXDRV_INCLUDE_DIRS)
|
||||
list(APPEND OVXDRV_INCLUDE_DIRS
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/include
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/include/CL)
|
||||
|
||||
set(OVXDRV_LIBRARIES)
|
||||
list(APPEND OVXDRV_LIBRARIES
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libCLC.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libGAL.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libOpenVX.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libOpenVXU.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libVSC.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libArchModelSw.so
|
||||
${PROJECT_SOURCE_DIR}/build/aarch64_A311D_D312513_A294074_R311680_T312233_O312045/lib/libNNArchPerf.so)
|
||||
|
||||
mark_as_advanced(${OVXDRV_INCLUDE_DIRS} ${OVXDRV_LIBRARIES})
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
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,29 @@
|
|||
message("Processing X86_64.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)
|
||||
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)
|
||||
Loading…
Reference in New Issue