From 998d471edad456c4622c9db22d1263652683ffb3 Mon Sep 17 00:00:00 2001 From: Vincent W Date: Thu, 6 Nov 2025 10:56:41 +0100 Subject: [PATCH] fix(cmake): Compile libpaho with the project --- doc/installation/installation.md | 41 ++--------------------- src/g2_2025_imu_reader_pkg/CMakeLists.txt | 38 ++++++++++++++------- 2 files changed, 28 insertions(+), 51 deletions(-) diff --git a/doc/installation/installation.md b/doc/installation/installation.md index 9c498b9..27bd663 100644 --- a/doc/installation/installation.md +++ b/doc/installation/installation.md @@ -42,54 +42,17 @@ ros2 launch g2_2025_imu_reader_pkg imu_reader.launch.xml ``` To change parameters when using the launch file it will need to be edited in the `src/g2_2025_imu_reader_pkg/launch` folder. All parameters are already added to this document and thus only the values will need to be changed -### installation and setup for mqtt +## For launching lifecycle mqtt node -```bash -sudo apt install mosquitto - -sudo apt-get install libpaho-mqtt-dev - - -git clone https://github.com/eclipse/paho.mqtt.cpp -cd paho.mqtt.cpp -git co v1.5.4 -git submodule init -git submodule update - -cmake -Bbuild -H. -DPAHO_WITH_MQTT_C=ON -DPAHO_BUILD_EXAMPLES=ON -sudo cmake --build build/ --target install -``` - -## for launching lifecycle mqtt node - -first: +First: ```bash ros2 run g2_2025_imu_reader_pkg g2_2025_lifecycle_node --ros-args -p comm_t:='mqtt' ``` -in other terminal: - -```bash -mosquitto -``` - and in other terminal to inialize the subscriber: ```bash ros2 lifecycle set /lifecycle_manager configure ros2 lifecycle set /lifecycle_manager activate ros2 lifecycle set /lifecycle_manager deactivate ros2 lifecycle set /lifecycle_manager shutdown - - -``` - -And finally publish a message to the sub in other terminal: - -```bash -mosquitto_pub -h localhost -p 1883 -t "esp32/imu" -m "test" -``` - -close connection via: -```bash -ros2 lifecycle set /lifecycle_manager deactivate ``` diff --git a/src/g2_2025_imu_reader_pkg/CMakeLists.txt b/src/g2_2025_imu_reader_pkg/CMakeLists.txt index c87f446..b5d9be7 100644 --- a/src/g2_2025_imu_reader_pkg/CMakeLists.txt +++ b/src/g2_2025_imu_reader_pkg/CMakeLists.txt @@ -8,13 +8,35 @@ endif() # external packages include(FetchContent) -fetchcontent_declare( +FetchContent_Declare( tomlplusplus GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git GIT_TAG v3.4.0 ) -fetchcontent_makeavailable(tomlplusplus) +FetchContent_MakeAvailable(tomlplusplus) + +FetchContent_Declare( + paho_mqtt_cpp + GIT_REPOSITORY https://github.com/eclipse/paho.mqtt.cpp.git + GIT_TAG v1.5.2 +) + +set(PAHO_WITH_MQTT_C ON CACHE BOOL "Build with Paho MQTT C library" FORCE) +set(PAHO_MQTT_CPP_BUILD_STATIC ON CACHE BOOL "Build static library" FORCE) +set(PAHO_MQTT_CPP_BUILD_SHARED OFF CACHE BOOL "Build shared library" FORCE) +set(PAHO_WITH_SSL OFF CACHE BOOL "Build with SSL support" FORCE) +set(PAHO_BUILD_EXAMPLES OFF CACHE BOOL "Build example programs" FORCE) + +FetchContent_MakeAvailable(paho_mqtt_cpp) + +FetchContent_Declare( + nlohmann_json + GIT_REPOSITORY https://github.com/nlohmann/json.git + GIT_TAG v3.12.0 +) + +FetchContent_MakeAvailable(nlohmann_json) # find dependencies find_package(ament_cmake REQUIRED) @@ -23,7 +45,6 @@ find_package(rclcpp_action REQUIRED) find_package(std_msgs REQUIRED) find_package(sensor_msgs REQUIRED) find_package(rclcpp_lifecycle REQUIRED) -find_package(nlohmann_json REQUIRED) add_executable(g2_2025_imu_database_writer_node src/g2_2025_imu_database_writer_node/Main.cpp @@ -38,9 +59,6 @@ target_include_directories(g2_2025_imu_database_writer_node PRIVATE ) ament_target_dependencies(g2_2025_imu_database_writer_node rclcpp sensor_msgs) target_link_libraries(g2_2025_imu_database_writer_node pqxx pq tomlplusplus::tomlplusplus) -ament_target_dependencies(g2_2025_imu_database_writer_node rclcpp sensor_msgs) -target_link_libraries(g2_2025_imu_database_writer_node pqxx pq tomlplusplus::tomlplusplus) - add_executable(g2_2025_lifecycle_node src/g2_2025_lifecycle_node/main.cpp @@ -56,13 +74,10 @@ target_include_directories(g2_2025_lifecycle_node PRIVATE ament_target_dependencies(g2_2025_lifecycle_node rclcpp rclcpp_lifecycle std_msgs sensor_msgs) target_link_libraries(g2_2025_lifecycle_node - paho-mqttpp3 - paho-mqtt3a + paho-mqttpp3-static nlohmann_json::nlohmann_json ) - - install( TARGETS g2_2025_imu_database_writer_node @@ -142,8 +157,7 @@ if(BUILD_TESTING) sensor_msgs ) target_link_libraries(${PROJECT_NAME}_test_lifecycle_manager - paho-mqttpp3 - paho-mqtt3a + paho-mqttpp3-static nlohmann_json::nlohmann_json ) set_target_properties(${PROJECT_NAME}_test_lifecycle_manager PROPERTIES INSTALL_RPATH "/usr/local/lib")