cmake_minimum_required(VERSION 3.8) project(rknn_yolo_demo_linux) set(CMAKE_CXX_STANDARD 11) add_definitions(-g -O0 -ggdb -gdwarf -funwind-tables -rdynamic) add_definitions(-Wno-write-strings -Wno-return-type) set(TOOLCHAIN_DIR /opt/atk-dlrv1126-toolchain) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/usr/bin/arm-linux-gnueabihf-g++) set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/usr/bin/arm-linux-gnueabihf-gcc) set(SYSROOT ${TOOLCHAIN_DIR}/arm-buildroot-linux-gnueabihf/sysroot/usr/include) set(CMAKE_SYSROOT ${TOOLCHAIN_DIR}/arm-buildroot-linux-gnueabihf/sysroot) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread") # for linux if (CMAKE_C_COMPILER MATCHES "aarch64") set(LIB_ARCH lib64) else() set(LIB_ARCH lib) endif() # # for android # if (${TARGET_SOC} STREQUAL "RK3399PRO") # set(LIB_ARCH lib64) # endif() # rga set(RGA_DIR ${MZ_ROOT}/libs/rklibs/rknpu-1.7.3/rknn/rknn_api/examples/3rdparty/rga) include_directories(${RGA_DIR}/include) # drm set(DRM_DIR ${MZ_ROOT}/libs/common/drm) include_directories(${DRM_DIR}/include) include_directories(${DRM_DIR}/include/libdrm) #stb set(STB_DIR ${MZ_ROOT}/libs/common/) include_directories(${STB_DIR}) # rknn api if (${TARGET_SOC} STREQUAL "RK3399PRO") set(RKNN_API_PATH ${MZ_ROOT}/libs/rklibs/RK3399Pro_npu/rknn-api/librknn_api) include_directories(${RKNN_API_PATH}/include) set(RKNN_API_LIB ${RKNN_API_PATH}/${CMAKE_SYSTEM_NAME}/${LIB_ARCH}/librknn_api.so) else() set(RKNN_API_PATH ${MZ_ROOT}/libs/rklibs/rknpu-1.7.3/rknn/rknn_api/librknn_api) include_directories(${RKNN_API_PATH}/include) set(RKNN_API_LIB ${RKNN_API_PATH}/${LIB_ARCH}/librknn_api.so) endif() # libjpeg set(LIBJPEG_DIR ${MZ_ROOT}/libs/platform/${TARGET_SOC}/libjpeg) include_directories(${LIBJPEG_DIR}/include) set(LIBJPEG_LIB ${LIBJPEG_DIR}/lib/${CMAKE_SYSTEM_NAME}/libjpeg.a) # libpng set(LIBPNG_DIR ${MZ_ROOT}/libs/platform/${TARGET_SOC}/libpng) include_directories(${LIBPNG_DIR}/include) set(LIBPNG_LIB ${LIBPNG_DIR}/lib/${CMAKE_SYSTEM_NAME}/libpng.a) # zlib(used by libpng) set(ZLIB_DIR ${MZ_ROOT}/libs/platform/${TARGET_SOC}/zlib) include_directories(${ZLIB_DIR}/include) set(ZLIB_LIB ${ZLIB_DIR}/lib/${CMAKE_SYSTEM_NAME}/libz.a) # #curl include_directories(${CMAKE_SOURCE_DIR}/include) # set(CURL_LIB /opt/atk-dlrv1126-toolchain/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libcurl.so) set(libs jes_bas jes_upgrade jes_user jes_network jes_mss jes_isp jes_mcs jes_spk jes_record jes_recsnap jes_replay jes_storage jlinux jbus jbuffer dbus-1 jvbase arch utility cjson ${LIBINTL}) link_directories(/opt/atk-dlrv1126-toolchain/arm-buildroot-linux-gnueabihf/sysroot/usr/lib) find_package(CURL REQUIRED) include_directories(${CURL_INCLUDE_DIR}) message("CURL_LIBRARIES: ${CURL_LIBRARIES}") message("CURL_INCLUDE_DIR: ${CURL_INCLUDE_DIR}") find_package(OpenCV REQUIRED) find_package(OpenSSL REQUIRED) set(OPENCV_LIBS opencv_core opencv_imgcodecs opencv_imgproc opencv_features2d opencv_flann opencv_highgui opencv_freetype) set(RKNN_LIBS easymedia rga rkaiq sample_common_isp) link_directories(include lib) link_directories(include ./include/librtsp) link_directories(/home/developer/sysroot/usr/lib) link_directories(/home/developer/sysroot/lib) include_directories(/home/developer/sysroot/usr/include/) include_directories(${SYSROOT}) include_directories(${SYSROOT}/rga) include_directories(${SYSROOT}/easymedia) include_directories(${SYSROOT}/rkaiq/uAPI) include_directories(${SYSROOT}/rkaiq/xcore) include_directories(${SYSROOT}/rkaiq/algos) include_directories(${SYSROOT}/rkaiq/common) include_directories(${SYSROOT}/rkaiq/iq_parser) include_directories(./include/librtsp) include_directories(./include/nlohmann) set(CMAKE_INSTALL_RPATH "lib") add_executable(yolov5-JES src/drm_func.c src/rga_func.c src/main.cpp src/yolov5_detect_postprocess.cpp src/yolov5_detect.cpp ) target_link_libraries(yolov5-JES ${RKNN_API_LIB} ${LIBJPEG_LIB} ${LIBPNG_LIB} ${ZLIB_LIB} ${OPENCV_LIBS} ${CURL_LIBRARIES} librtsp.a ${RKNN_LIBS} dl ${libs} OpenSSL::Crypto OpenSSL::SSL ) add_definitions(-DRKAIQ) # install target and libraries set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/yolov5-JES) install(TARGETS yolov5-JES DESTINATION ./) install(PROGRAMS ${RKNN_API_LIB} DESTINATION lib )