Train_RFID_Linux/CMakeLists.txt

238 lines
7.0 KiB
CMake
Raw Normal View History

# 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")
#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)
# 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}
2024-07-27 08:12:26 +00:00
${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
)