diff --git a/patch/ros-rolling-diagnostic-updater.patch b/patch/ros-rolling-diagnostic-updater.patch new file mode 100644 index 00000000..b06b269b --- /dev/null +++ b/patch/ros-rolling-diagnostic-updater.patch @@ -0,0 +1,100 @@ +diff --git a/diagnostic_updater/CMakeLists.txt b/diagnostic_updater/CMakeLists.txt +index 46c2ecc..bdbb811 100644 +--- a/diagnostic_updater/CMakeLists.txt ++++ b/diagnostic_updater/CMakeLists.txt +@@ -9,7 +9,7 @@ endif() + if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) + endif() +-set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++# set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_ros REQUIRED) +@@ -19,9 +19,10 @@ find_package(rclcpp REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) + +-add_library(${PROJECT_NAME} ++add_library(${PROJECT_NAME} SHARED + src/diagnostic_updater.cpp + ) ++target_compile_definitions(${PROJECT_NAME} PRIVATE DIAGNOSTIC_UPDATER_BUILDING_DLL) + target_include_directories( + ${PROJECT_NAME} + PUBLIC +diff --git a/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp b/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp +index 517a704..e5b2ad4 100644 +--- a/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp ++++ b/diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp +@@ -46,6 +46,7 @@ + #include "diagnostic_msgs/msg/diagnostic_array.hpp" + #include "diagnostic_msgs/msg/diagnostic_status.hpp" + ++#include "diagnostic_updater/visibility_control.hpp" + #include "diagnostic_updater/diagnostic_status_wrapper.hpp" + + #include "rcl/time.h" +@@ -353,7 +354,7 @@ protected: + * determined by the "~/diagnostic_updater.period" ros2 parameter. + * The force_update function can always be triggered async to the period interval. + */ +-class Updater : public DiagnosticTaskVector ++class DIAGNOSTIC_UPDATER_PUBLIC Updater : public DiagnosticTaskVector + { + public: + bool verbose_; +diff --git a/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp b/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp +new file mode 100644 +index 0000000..c1684f1 +--- /dev/null ++++ b/diagnostic_updater/include/diagnostic_updater/visibility_control.hpp +@@ -0,0 +1,28 @@ ++#ifndef DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++#define DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++ ++#if defined _WIN32 || defined __CYGWIN__ ++ #ifdef __GNUC__ ++ #define DIAGNOSTIC_UPDATER_EXPORT __attribute__ ((dllexport)) ++ #define DIAGNOSTIC_UPDATER_IMPORT __attribute__ ((dllimport)) ++ #else ++ #define DIAGNOSTIC_UPDATER_EXPORT __declspec(dllexport) ++ #define DIAGNOSTIC_UPDATER_IMPORT __declspec(dllimport) ++ #endif ++ #ifdef DIAGNOSTIC_UPDATER_BUILDING_DLL ++ #define DIAGNOSTIC_UPDATER_PUBLIC DIAGNOSTIC_UPDATER_EXPORT ++ #else ++ #define DIAGNOSTIC_UPDATER_PUBLIC DIAGNOSTIC_UPDATER_IMPORT ++ #endif ++ #define DIAGNOSTIC_UPDATER_PUBLIC_TYPE DIAGNOSTIC_UPDATER_PUBLIC ++ #define DIAGNOSTIC_UPDATER_LOCAL ++#else ++ #define DIAGNOSTIC_UPDATER_EXPORT __attribute__ ((visibility ("default"))) ++ #define DIAGNOSTIC_UPDATER_IMPORT ++ #define DIAGNOSTIC_UPDATER_PUBLIC __attribute__ ((visibility ("default"))) ++ #define DIAGNOSTIC_UPDATER_LOCAL __attribute__ ((visibility ("hidden"))) ++ #define DIAGNOSTIC_UPDATER_PUBLIC_TYPE ++#endif ++ ++#endif // DIAGNOSTIC_UPDATER__VISIBILITY_CONTROL_HPP_ ++ +diff --git a/diagnostic_updater/src/diagnostic_updater.cpp b/diagnostic_updater/src/diagnostic_updater.cpp +index 188aa31..78d59d1 100644 +--- a/diagnostic_updater/src/diagnostic_updater.cpp ++++ b/diagnostic_updater/src/diagnostic_updater.cpp +@@ -31,14 +31,13 @@ + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + *********************************************************************/ +- + #include + + #include "rclcpp/rclcpp.hpp" + + namespace diagnostic_updater + { +-Updater::Updater( ++DIAGNOSTIC_UPDATER_PUBLIC Updater::Updater( + std::shared_ptr base_interface, + std::shared_ptr clock_interface, + std::shared_ptr logging_interface, \ No newline at end of file diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 88bec679..d8f6da8c 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -25,8 +25,6 @@ data_tamer_cpp: # Remove once https://github.com/PickNikRobotics/data_tamer/pul additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" diagnostic_aggregator: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" -diagnostic_updater: - additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" eigenpy: generate_dummy_package_with_run_deps: dep_name: eigenpy @@ -231,6 +229,9 @@ visp: override_version: '3.6.0' zenoh_cpp_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR_IGNORE_SATISFIED_CHECK -DUSE_SYSTEM_ZENOH=ON" +diagnostic_updater: + additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" + build_number: 26 ros2cli: build_number: 26 rosidl_cli: