intrusion-detective/services/intrusion-detection/CMakeLists.txt

61 lines
2.0 KiB
CMake
Raw Normal View History

# CMake 最低版本要求
cmake_minimum_required(VERSION 3.4.1)
# 项目名称
project(IntrusionDetectionService CXX)
# 设置 C++ 标准和编译选项
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "-pthread")
# --- 1. 定义并查找公共库 (RKNN) ---
# 使用相对路径找到顶层目录下的 libs 文件夹
set(COMMON_LIB_DIR ${CMAKE_SOURCE_DIR}/libs)
find_library(RKNNRT_LIBRARY rknnrt HINTS ${COMMON_LIB_DIR})
find_library(RKNNAPI_LIBRARY rknn_api HINTS ${COMMON_LIB_DIR})
if(NOT RKNNRT_LIBRARY OR NOT RKNNAPI_LIBRARY)
message(FATAL_ERROR "Could not find RKNN libraries in ${COMMON_LIB_DIR}")
else()
message(STATUS "Found rknnrt: ${RKNNRT_LIBRARY}")
message(STATUS "Found rknn_api: ${RKNNAPI_LIBRARY}")
endif()
# --- 2. 定义并查找其他依赖 (OpenCV, RGA) ---
find_package(OpenCV REQUIRED)
# rga 库的路径,根据您的截图,它位于 include/3rdparty
set(RGA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/include/3rdparty/rga/RK3588)
set(RGA_LIB ${RGA_PATH}/lib/Linux/aarch64/librga.so)
if(NOT EXISTS ${RGA_LIB})
message(FATAL_ERROR "RGA library not found at ${RGA_LIB}")
endif()
# --- 3. 生成可执行文件 ---
# (修改点) 根据截图,所有源文件都在 src 目录下,为其添加 "src/" 前缀
add_executable(intrusion_detection_service
src/main.cc
src/postprocess.cc
src/preprocess.cc
src/rkYolov5s.cc
)
# --- 4. 为目标指定头文件搜索路径 ---
# (修改点) 根据截图,所有头文件都在 include 目录下
target_include_directories(intrusion_detection_service PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include # <-- 关键修改
${OpenCV_INCLUDE_DIRS}
${RGA_PATH}/include
# 如果有公共头文件,也需要添加路径,例如: ${CMAKE_SOURCE_DIR}/include
)
# --- 5. 链接所有库到可执行文件 ---
target_link_libraries(intrusion_detection_service
${RKNNRT_LIBRARY}
${RKNNAPI_LIBRARY}
${RGA_LIB}
${OpenCV_LIBS}
)
message(STATUS "Configuration for IntrusionDetectionService is complete.")