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) find_package(absl REQUIRED) add_subdirectory(src/vendor/crow) add_library(nlohmann_json INTERFACE) target_include_directories(nlohmann_json INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/src/vendor ${CMAKE_CURRENT_SOURCE_DIR}/../libs # 如果你的 libs 目录有项目自定义头文件 ) add_library(vehicle_road_lib STATIC # 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 # --- 协议层 --- 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 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 #新视频模块 src/videoService/video_pipeline.cpp src/yoloDetector/postprocess.cc src/yoloDetector/yolo_detector.cpp ) target_include_directories(vehicle_road_lib PUBLIC /usr/include/opencv4 ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/videoService ${GST_INCLUDE_DIRS} /usr/include/rga ) target_link_libraries(vehicle_road_lib PRIVATE spdlog::spdlog Boost::system Boost::thread PahoMqttCpp::paho-mqttpp3 SQLite::SQLite3 pthread # rknn_api rknnrt rockchip_mpp rga ${OpenCV_LIBS} ${GST_LIBRARIES} # --- 新增 Abseil 库 --- absl::strings absl::time absl::synchronization absl::status absl::statusor ) target_link_libraries(vehicle_road_lib PUBLIC Crow nlohmann_json ) # ================================== # Main Application Target # ================================== add_executable(vehicle_road_counter src/main.cpp ) target_link_libraries(vehicle_road_counter PRIVATE vehicle_road_lib ) # ================================================================= # 测试目标 # ================================================================= # 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} # )