2024-04-08 02:38:51 +00:00
|
|
|
|
# CMake lowest version requirement
|
|
|
|
|
cmake_minimum_required(VERSION 3.21)
|
|
|
|
|
|
|
|
|
|
# project information
|
|
|
|
|
project(train_RFID_Linux)
|
|
|
|
|
|
|
|
|
|
project(${PROJECT_NAME} VERSION 0.1 DESCRIPTION "RFID识别程序 Linux版")
|
|
|
|
|
|
|
|
|
|
add_definitions(-std=c++11)
|
|
|
|
|
add_definitions(-DAPI_EXPORTS)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
|
|
|
option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
|
|
|
|
|
|
|
|
|
|
# Set target output directory
|
|
|
|
|
set(PROJECT_SRC_ROOT ${CMAKE_CURRENT_LIST_DIR}/)
|
|
|
|
|
set(CMAKE_MODULE_PATH ${PROJECT_SRC_ROOT}/CMake)
|
|
|
|
|
|
|
|
|
|
# 设置项目生成目录
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SRC_ROOT}/app)
|
|
|
|
|
|
|
|
|
|
# 设置调用库文件的位置
|
|
|
|
|
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
|
|
|
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
|
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
|
|
|
set(CMAKE_INSTALL_RPATH "./lib")
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
|
|
|
|
|
# sftp上传
|
|
|
|
|
find_package(Libssh2)
|
|
|
|
|
|
|
|
|
|
# boost,指定版本
|
|
|
|
|
set(BOOST_INCLUDEDIR /usr/local/include)
|
|
|
|
|
find_package(Boost 1.65.0 EXACT REQUIRED COMPONENTS system filesystem)
|
|
|
|
|
include_directories(${Boost_INCLUDE_DIRS})
|
|
|
|
|
message(STATUS "Using Boost ${Boost_VERSION}")
|
|
|
|
|
|
|
|
|
|
# opencv
|
|
|
|
|
#find_package(OpenCV REQUIRED)
|
|
|
|
|
#message(STATUS "Using OpenCV ${OpenCV_VERSION}")
|
|
|
|
|
|
|
|
|
|
# CUDA
|
|
|
|
|
#find_package(CUDA REQUIRED)
|
|
|
|
|
#message(STATUS "Using CUDA ${CUDA_VERSION}")
|
|
|
|
|
|
|
|
|
|
# 添加调试信息
|
|
|
|
|
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -O0 -Wfatal-errors -pthread -w -g")
|
|
|
|
|
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c++11 -O0 -Xcompiler -fPIC -g -w ${CUDA_GEN_CODE}")
|
|
|
|
|
|
|
|
|
|
# 设置库/头文件路径
|
|
|
|
|
set(SYS_USR_INCLUDE_DIR "/usr/include")
|
|
|
|
|
set(SYS_USR_LIB_DIR "/usr/lib")
|
|
|
|
|
set(SYS_USR_LOCAL_INCLUDE_DIR "/usr/local/include")
|
|
|
|
|
set(SYS_USR_LOCAL_LIB_DIR "/usr/local/lib")
|
2024-07-27 08:12:26 +00:00
|
|
|
|
# set(X86_LINUX_INCLUDE_DIR "/usr/include/x86_64-linux-gnu")
|
|
|
|
|
# set(X86_LINUX_LIB_DIR "/usr/lib/x86_64-linux-gnu")
|
|
|
|
|
set(X86_LINUX_INCLUDE_DIR "/usr/include/aarch64-linux-gnu")
|
|
|
|
|
set(X86_LINUX_INCLUDE_DIR "/usr/lib/aarch64-linux-gnu")
|
2024-04-08 02:38:51 +00:00
|
|
|
|
|
|
|
|
|
#OpenCV头文件及库文件
|
|
|
|
|
#set(OPENCV_INCLUDE_DIR ${SYS_USR_LOCAL_INCLUDE_DIR}/opencv4)
|
|
|
|
|
#set(OPENCV_LIB_DIR ${SYS_USR_LOCAL_LIB_DIR})
|
|
|
|
|
|
|
|
|
|
#CUDA头文件及库文件
|
|
|
|
|
#set(CUDA_DIR "/usr/local/cuda-11.7")
|
|
|
|
|
#set(CUDA_INCLUDE_DIR ${CUDA_DIR}/include)
|
|
|
|
|
#set(CUDA_LIB_DIR ${CUDA_DIR}/lib64)
|
|
|
|
|
|
|
|
|
|
#TensorRT头文件及库文件
|
|
|
|
|
#set(TENSORRT_INCLUDE_DIR ${X86_LINUX_INCLUDE_DIR}) #tensorrt的头文件在/usr/include/aarch64-linux-gnu下
|
|
|
|
|
#set(TENSORRT_LIB_DIR ${X86_LINUX_LIB_DIR}) #tensorrt的库文件在/usr/lib/aarch64-linux-gnu下
|
|
|
|
|
|
|
|
|
|
#ai_matrix
|
|
|
|
|
set(ai_matrix_Folder ${PROJECT_SRC_ROOT}/ai_matrix)
|
|
|
|
|
get_filename_component(ai_matrix_ABS_DIR ${ai_matrix_Folder} ABSOLUTE)
|
|
|
|
|
file(GLOB_RECURSE ai_matrix_SRC_FILES
|
|
|
|
|
${ai_matrix_ABS_DIR}/framework/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/myqueue/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/myshell/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/mylog/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/Utils/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/Http/*cpp
|
|
|
|
|
${ai_matrix_ABS_DIR}/Config/*cpp
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
include_directories(${ai_matrix_Folder})
|
|
|
|
|
include_directories(${ai_matrix_Folder}/framework)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/myqueue)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/myshell)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/mylog)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/Utils)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/Http)
|
|
|
|
|
include_directories(${ai_matrix_Folder}/Config)
|
|
|
|
|
|
|
|
|
|
# DealRfidEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/DealRfidEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/DealRfidEngine DealRfidEngine_SRC)
|
|
|
|
|
|
|
|
|
|
# GetRfidEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/GetRfidEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/GetRfidEngine GetRfidEngine_SRC)
|
|
|
|
|
|
2024-07-27 08:12:26 +00:00
|
|
|
|
# HttpEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/HttpEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/HttpEngine HttpEngine_SRC)
|
2024-04-08 02:38:51 +00:00
|
|
|
|
|
|
|
|
|
# SaveResultEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/SaveResultEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/SaveResultEngine SaveResultEngine_SRC)
|
|
|
|
|
|
|
|
|
|
# SaveRfidEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/SaveRfidEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/SaveRfidEngine SaveRfidEngine_SRC)
|
|
|
|
|
|
2024-04-25 09:53:34 +00:00
|
|
|
|
# VideoAuxiliaryEngine
|
|
|
|
|
include_directories(${PROJECT_SRC_ROOT}/engine/VideoAuxiliaryEngine)
|
|
|
|
|
aux_source_directory(${PROJECT_SRC_ROOT}/engine/VideoAuxiliaryEngine VideoAuxiliaryEngine_SRC)
|
|
|
|
|
|
2024-04-08 02:38:51 +00:00
|
|
|
|
|
|
|
|
|
# 其他头文件
|
|
|
|
|
include_directories(
|
|
|
|
|
#base include
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/BlockingQueue
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/CBase64
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/CommandParser
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/CommonDataType
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/ConfigParser
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/ErrorCode
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/FileManager
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/Log
|
|
|
|
|
|
|
|
|
|
#code include
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/common
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/cuda_utils
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/model
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/preprocess
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/inference
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/postprocess
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/BaseSocket
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/BaseComPort
|
|
|
|
|
|
|
|
|
|
#third party include
|
|
|
|
|
# ${CUDA_INCLUDE_DIR}
|
|
|
|
|
# ${TENSORRT_INCLUDE_DIR}
|
|
|
|
|
# ${OpenCV_DIR}
|
|
|
|
|
${X86_LINUX_INCLUDE_DIR}
|
|
|
|
|
${SYS_USR_LOCAL_INCLUDE_DIR}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 设置链接库路径
|
|
|
|
|
link_directories(${SYS_USR_LOCAL_LIB_DIR}
|
|
|
|
|
${X86_LINUX_LIB_DIR}
|
|
|
|
|
# ${OPENCV_LIB_DIR}
|
|
|
|
|
# ${CUDA_LIB_DIR}
|
|
|
|
|
# ${TENSORRT_LIB_DIR}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 源文件
|
|
|
|
|
file(
|
|
|
|
|
GLOB_RECURSE SRCS_LISTS
|
|
|
|
|
|
|
|
|
|
${ai_matrix_SRC_FILES}
|
|
|
|
|
|
|
|
|
|
#base src
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/CommandParser/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/ConfigParser/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/ErrorCode/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/FileManager/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/base/Log/*.cpp
|
|
|
|
|
|
|
|
|
|
#code src
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/common/*.cpp
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/cuda_utils/*.cpp
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/preprocess/*.cu
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/inference/*.cu
|
|
|
|
|
# ${PROJECT_SOURCE_DIR}/code/postprocess/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/BaseSocket/*.cpp
|
|
|
|
|
${PROJECT_SOURCE_DIR}/code/BaseComPort/*.cpp
|
|
|
|
|
|
|
|
|
|
# engine
|
|
|
|
|
${DealRfidEngine_SRC}
|
|
|
|
|
${GetRfidEngine_SRC}
|
2024-07-27 08:12:26 +00:00
|
|
|
|
${HttpEngine_SRC}
|
2024-04-08 02:38:51 +00:00
|
|
|
|
${SaveResultEngine_SRC}
|
|
|
|
|
${SaveRfidEngine_SRC}
|
2024-04-25 09:53:34 +00:00
|
|
|
|
${VideoAuxiliaryEngine_SRC}
|
2024-04-08 02:38:51 +00:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 服务端
|
|
|
|
|
add_executable(${PROJECT_NAME}
|
|
|
|
|
|
|
|
|
|
${PROJECT_SRC_ROOT}/main.cpp
|
|
|
|
|
|
|
|
|
|
${SRCS_LISTS}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# TensorRT
|
|
|
|
|
#target_link_libraries(
|
|
|
|
|
# ${PROJECT_NAME}
|
|
|
|
|
# nvinfer
|
|
|
|
|
# nvonnxparser
|
|
|
|
|
# nvcaffe_parser
|
|
|
|
|
# nvinfer_plugin
|
|
|
|
|
#)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(
|
|
|
|
|
${PROJECT_NAME}
|
|
|
|
|
${Boost_LIBRARIES}
|
|
|
|
|
# ${CUDA_LIBRARIES}
|
|
|
|
|
# ${OpenCV_LIBS}
|
|
|
|
|
${_REFLECTION}
|
|
|
|
|
|
|
|
|
|
# FFmpeg
|
|
|
|
|
avformat
|
|
|
|
|
avcodec
|
|
|
|
|
avutil
|
|
|
|
|
avfilter
|
|
|
|
|
swresample
|
|
|
|
|
swscale
|
|
|
|
|
postproc
|
|
|
|
|
|
|
|
|
|
rt
|
|
|
|
|
dl
|
|
|
|
|
pthread
|
|
|
|
|
yaml-cpp
|
|
|
|
|
https_sn
|
|
|
|
|
jsoncpp
|
|
|
|
|
curl
|
|
|
|
|
ssh2
|
|
|
|
|
crypto
|
|
|
|
|
-Wl,-z,relro,-z,now,-z,noexecstack -pie -s
|
|
|
|
|
)
|