238 lines
7.0 KiB
CMake
238 lines
7.0 KiB
CMake
# 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")
|
||
# 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")
|
||
|
||
#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)
|
||
|
||
# HttpEngine
|
||
include_directories(${PROJECT_SRC_ROOT}/engine/HttpEngine)
|
||
aux_source_directory(${PROJECT_SRC_ROOT}/engine/HttpEngine HttpEngine_SRC)
|
||
|
||
# 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)
|
||
|
||
# VideoAuxiliaryEngine
|
||
include_directories(${PROJECT_SRC_ROOT}/engine/VideoAuxiliaryEngine)
|
||
aux_source_directory(${PROJECT_SRC_ROOT}/engine/VideoAuxiliaryEngine VideoAuxiliaryEngine_SRC)
|
||
|
||
|
||
# 其他头文件
|
||
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}
|
||
${HttpEngine_SRC}
|
||
${SaveResultEngine_SRC}
|
||
${SaveRfidEngine_SRC}
|
||
${VideoAuxiliaryEngine_SRC}
|
||
)
|
||
|
||
# 服务端
|
||
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
|
||
)
|