2025-07-10 17:36:16 +08:00
|
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
project(mqtt_client)
|
|
|
|
|
|
|
|
|
|
|
|
# 设置 C++ 标准
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
|
|
|
|
|
|
# 设置可执行文件输出目录
|
2025-09-23 14:33:56 +08:00
|
|
|
|
|
2025-07-10 17:36:16 +08:00
|
|
|
|
|
|
|
|
|
|
# 包含头文件目录
|
|
|
|
|
|
include_directories(
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/include
|
2025-09-23 14:33:56 +08:00
|
|
|
|
${CMAKE_SOURCE_DIR}/third_party/paho_mqtt
|
|
|
|
|
|
${CMAKE_SOURCE_DIR}/third_party/
|
2025-07-10 17:36:16 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-09-23 14:33:56 +08:00
|
|
|
|
option(PLATFORM_HISI "Build for HiSilicon platform" ON)
|
|
|
|
|
|
|
|
|
|
|
|
if (PLATFORM_HISI)
|
|
|
|
|
|
link_directories(${CMAKE_SOURCE_DIR}/lib/hisi)
|
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../../bin/hisi)
|
|
|
|
|
|
|
|
|
|
|
|
set(PAHO_C_LIB paho-mqtt3a) # TCP 库
|
|
|
|
|
|
else()
|
|
|
|
|
|
link_directories(${CMAKE_SOURCE_DIR}/lib/x86)
|
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../../bin/x86)
|
|
|
|
|
|
|
|
|
|
|
|
set(PAHO_C_LIB paho-mqtt3a) # 本机测试也用 TCP 库,如果需要 SSL,再改成 paho-mqtt3as
|
|
|
|
|
|
endif()
|
2025-07-10 17:36:16 +08:00
|
|
|
|
|
|
|
|
|
|
# 源文件列表
|
|
|
|
|
|
set(SOURCES
|
|
|
|
|
|
src/main.cpp
|
|
|
|
|
|
src/config/mqtt_config.cpp
|
|
|
|
|
|
src/data/protocol_codec.cpp
|
|
|
|
|
|
src/log/logger.cpp
|
|
|
|
|
|
src/tcp/tcp_client.cpp
|
2025-09-23 14:33:56 +08:00
|
|
|
|
src/tcp/tcp_server.cpp
|
2025-07-10 17:36:16 +08:00
|
|
|
|
src/mqtt/mqtt_client.cpp
|
|
|
|
|
|
src/mqtt/mqtt_client_wrapper.cpp
|
|
|
|
|
|
src/tcp/tcp_thread/broadcast_client.cpp
|
|
|
|
|
|
src/tcp/tcp_thread/mqtt_config_client.cpp
|
|
|
|
|
|
src/tcp/tcp_thread/uplink_data_client.cpp
|
|
|
|
|
|
src/tcp/tcp_thread/uplink_notify_client.cpp
|
2025-09-23 14:33:56 +08:00
|
|
|
|
src/tcp/tcp_thread/reply_server.cpp
|
2025-07-10 17:36:16 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# 创建可执行文件
|
|
|
|
|
|
add_executable(${PROJECT_NAME} ${SOURCES})
|
|
|
|
|
|
|
2025-09-23 14:33:56 +08:00
|
|
|
|
|
|
|
|
|
|
target_link_libraries(mqtt_client
|
2025-07-10 17:36:16 +08:00
|
|
|
|
pthread
|
2025-09-23 14:33:56 +08:00
|
|
|
|
paho-mqttpp3
|
|
|
|
|
|
${PAHO_C_LIB}
|
2025-07-14 14:50:27 +08:00
|
|
|
|
ssl
|
|
|
|
|
|
crypto
|
|
|
|
|
|
dl
|
2025-07-10 17:36:16 +08:00
|
|
|
|
)
|
|
|
|
|
|
|