cmake_minimum_required(VERSION 3.12)
project(gps_tank)

# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 查找 Paho MQTT 库。
# 你的 dpkg 输出证明了系统中有正确的 CMake 配置文件，所以这行会成功。
find_package(PahoMqttCpp REQUIRED)

# 添加可执行文件
add_executable(main
    src/main.cc
    src/serial_port.cc
    src/mqtt_controller.cc
)

# 包含所有需要的头文件路径
target_include_directories(main PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/json/include
    # find_package 会自动处理 Paho Mqtt 的头文件路径，
    # 因为 PahoMqtt::paho-mqttpp3 目标包含了它的 include 目录。
    # 所以这里不再需要手动添加 ${PahoMqttCpp_INCLUDE_DIRS}。
)

# 链接库文件
# 只需要链接最顶层的 C++ 库目标。
# 它会自动将其依赖的 C 库 (paho-mqtt3as) 和 pthread 链接进来。
target_link_libraries(main PRIVATE
    paho-mqttpp3   # C++ 库
    paho-mqtt3as   # 它依赖的 C 库 (asynchronous)
    pthread        # 线程库
)

# 可选：添加调试和警告信息
target_compile_options(main PRIVATE -g -Wall -Wextra)