You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

cmake_minimum_required(VERSION 3.5.0)
project(sopTest VERSION 0.1.0 LANGUAGES C CXX)
# 设置算能交叉编译环境
set(TOOLCHAIN_DIR /home/wang/App/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu)
# 指定交叉编译器 arm-gcc 和 arm-g++
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/aarch64-linux-gnu-g++)
set(CMAKE_CXX_FLAGS "${CAMKE_CXX_FLAGS} -std=c++11 -pthread")
SET(CMAKE_BUILD_TYPE "Release")
# 设置源码路径宏
set(SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
# 将路径编码,便于各人模型文件的路径一致
add_definitions(-DSOURCE_PATH=\"${SOURCE_PATH}\")
# 设置第三方库路径AI识别也在第三方库中
set(SDK_DIR ${CMAKE_SOURCE_DIR}/third_party)
set(SOPHON_DIR ${SDK_DIR}/libsophon-0.5.1)
set(OPENCV_DIR ${SDK_DIR}/sophon-opencv_0.11.0)
set(FFMPEG_DIR ${SDK_DIR}/sophon-ffmpeg_0.11.0)
set(CJSON_DIR ${SDK_DIR}/sophon-cjson_1.7.1)
set(MNN_DIR ${SDK_DIR}/sophon-mnn-2.4.0)
set(ALG_DIR ${SDK_DIR}/gd_alg)
include_directories(${SOPHON_DIR}/include/)
include_directories(${OPENCV_DIR}/include/opencv4)
include_directories(${FFMPEG_DIR}/include)
include_directories(${ALG_DIR}/include)
include_directories(${CJSON_DIR}/include)
include_directories(NeoTracker/src)
include_directories(NanoTracker/src)
include_directories(public_include)
#
link_directories(${SOPHON_DIR}/lib/)
link_directories(${OPENCV_DIR}/lib/)
link_directories(${FFMPEG_DIR}/lib/)
link_directories(${ALG_DIR}/lib/)
link_directories(${CJSON_DIR}/lib)
set(BM_LIBS bmlib bmrt bmcv yuv bmion)
set(JPU_LIBS bmjpuapi bmjpulite)
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs opencv_videoio)
set(AIOD_LIBS AI_API)
set(CJSON_LIBS cjson)
# 构造传统跟踪算法库
set(LIB_TRACKER GuideTracker)
add_subdirectory(NeoTracker)
# 构造NaNoTrack
set(LIB_AITRACKER nanoTracker)
add_subdirectory(NanoTracker)
add_executable(OD_OT_Demo.soc OD_OT_Demo.cpp ff_decode.cpp demo_utils.cpp)
target_link_libraries(OD_OT_Demo.soc ${OPENCV_LIBS} ${LIB_TRACKER} ${LIB_AITRACKER} ${AIOD_LIBS} ${BM_LIBS} ${CJSON_LIBS} ${JPU_LIBS}
-lpthread -lavcodec -lavformat -lavutil -fopenmp)
# 双路测试
add_executable(DualTest.soc DualTest.cpp ff_decode.cpp demo_utils.cpp)
target_link_libraries(DualTest.soc ${OPENCV_LIBS} ${LIB_TRACKER} ${LIB_AITRACKER} ${AIOD_LIBS} ${BM_LIBS} ${CJSON_LIBS} ${JPU_LIBS}
-lpthread -lavcodec -lavformat -lavutil -fopenmp)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/Bin)