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 ${CMAKE_CURRENT_SOURCE_DIR}/../libs # 如果你的 libs 目录有项目自定义头文件 ) add_library(edge_proxy_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 #tts src/tts/piper_tts_interface.cc #config配置 src/config/config_manager.cc #告警模块 src/alarm/alarm_service.cc # 推理模块 src/rknn/video_service.cc src/rknn/rkYolov5s.cc src/rknn/rkYolov8.cc src/rknn/preprocess.cc src/rknn/postprocess.cc src/videoServiceManager/video_service_manager.cc src/algorithm/IntrusionModule.cc src/algorithm/HumanDetectionModule.cc ) target_include_directories(edge_proxy_lib PUBLIC /usr/include/opencv4 ${CMAKE_CURRENT_SOURCE_DIR}/src ${GST_INCLUDE_DIRS} /usr/include/rga ) target_link_libraries(edge_proxy_lib PRIVATE spdlog::spdlog Boost::system Boost::thread PahoMqttCpp::paho-mqttpp3 SQLite::SQLite3 pthread # rknn_api rknnrt rockchip_mpp rga ${OpenCV_LIBS} ${GST_LIBRARIES} ) target_link_libraries(edge_proxy_lib PUBLIC Crow nlohmann_json ) # ================================== # Main Application Target # ================================== add_executable(edge_proxy src/main.cpp ) target_link_libraries(edge_proxy PRIVATE edge_proxy_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} # )