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)