Vehicle_Road_Counter/CMakeLists.txt

140 lines
3.5 KiB
CMake
Raw Permalink Normal View History

2025-12-17 13:32:05 +08:00
cmake_minimum_required(VERSION 3.16)
project(EdgeProxy LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(spdlog REQUIRED)
find_package(Boost REQUIRED COMPONENTS system thread)
message(STATUS "Found Boost version: ${Boost_VERSION}")
find_package(PahoMqttCpp REQUIRED)
find_package(SQLite3 REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GST REQUIRED gstreamer-1.0 gstreamer-app-1.0)
find_package(OpenCV REQUIRED)
add_subdirectory(src/vendor/crow)
add_library(nlohmann_json INTERFACE)
target_include_directories(nlohmann_json INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/src/vendor
2025-12-17 13:32:05 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/../libs # 如果你的 libs 目录有项目自定义头文件
)
add_library(vehicle_road_lib STATIC
2025-12-17 13:32:05 +08:00
# TCP通讯层
src/network/tcp_server.cc
# --- 设备管理模块 ---
src/deviceManager/device_manager.cc
# 小工具
src/utils/mqtt_topic_matcher.cpp
# --- MQTT 核心模块 ---
src/mqtt/mqtt_client.cpp
src/mqtt/mqtt_router.cpp
src/mqtt/handler/data_handler.cpp
src/mqtt/handler/command_handler.cpp
2025-12-17 13:32:05 +08:00
# --- 协议层 ---
src/protocol/protocol.cc
src/protocol/private_protocol_adapter.cc
src/protocol/protocol_factory.cc
# 系统监视
src/systemMonitor/system_monitor.cc
#modbus
src/modbus/modbus_rtu_client.cc
2025-12-17 13:32:05 +08:00
src/modbus/modbus_rtu_bus_service.cc
src/modbus/generic_modbus_parser.cc
# --- Modbus Master ---
src/protocol/modbus/modbus_protocol.cc
src/modbus/modbus_master_poller.cc
# 数据缓存/断点续传
src/dataCache/data_cache.cc
src/dataCache/cache_uploader.cc
#web
src/web/web_server.cc
#SQL
src/dataStorage/data_storage.cc
#config配置
src/config/config_manager.cc
#告警模块
src/alarm/alarm_service.cc
)
target_include_directories(vehicle_road_lib PUBLIC
/usr/include/opencv4
2025-12-17 13:32:05 +08:00
${CMAKE_CURRENT_SOURCE_DIR}/src
${GST_INCLUDE_DIRS}
/usr/include/rga
2025-12-17 13:32:05 +08:00
)
target_link_libraries(vehicle_road_lib PRIVATE
2025-12-17 13:32:05 +08:00
spdlog::spdlog
Boost::system
Boost::thread
PahoMqttCpp::paho-mqttpp3
SQLite::SQLite3
pthread
# rknn_api
rknnrt
2025-12-17 13:32:05 +08:00
rockchip_mpp
rga
${OpenCV_LIBS}
${GST_LIBRARIES}
2025-12-17 13:32:05 +08:00
)
target_link_libraries(vehicle_road_lib PUBLIC
2025-12-17 13:32:05 +08:00
Crow
nlohmann_json
)
# ==================================
# Main Application Target
# ==================================
add_executable(vehicle_road_counter
2025-12-17 13:32:05 +08:00
src/main.cpp
)
target_link_libraries(vehicle_road_counter PRIVATE
vehicle_road_lib
2025-12-17 13:32:05 +08:00
)
# =================================================================
# 测试目标
2025-12-17 13:32:05 +08:00
# =================================================================
# add_executable(test
# src/test.cc
# src/systemMonitor/iio_sensor.cc
# )
# target_link_libraries(test PRIVATE
# edge_proxy_lib
# )
# add_executable(rknn
# src/rknn/main.cc
# src/rknn/postprocess.cc
# src/rknn/preprocess.cc
# src/rknn/rkYolov5s.cc
# # )
# target_link_libraries(rknn PRIVATE
# edge_proxy_lib
# ${OpenCV_LIBS}
# rockchip_mpp
# rga
# )
# target_include_directories(rknn PRIVATE
# "${CMAKE_CURRENT_SOURCE_DIR}/services/intrusion-detection/include"
# /usr/local/include
# /usr/include/opencv4 # 编译器会在这里面找 opencv2/core/core.hpp
# /usr/include/rga # 编译器会在这里面找 rga.h 和 im2d.h
# /usr/local/include
# ${CMAKE_CURRENT_SOURCE_DIR}/src/streamer/include
# ${GST_INCLUDE_DIRS}
# )