Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions patch/dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ intra_process_demo:
# Depends on opencv with gui support, see https://github.com/ros2/demos/blob/8f361a1ece2daae54016959f3ea9ab2e7692ddbb/intra_process_demo/include/image_pipeline/image_view_node.hpp#L58
add_run: ["libopencv * *qt6*"]
rviz_ogre_vendor:
add_host: ["zlib", "freeimage", "freetype", "assimp", "zziplib", "pugixml", "${{ 'libglu' if linux }}"]
add_build: ["vcstool"]
add_host: ["zlib", "freeimage", "freetype", "assimp", "zziplib", "pugixml", "${{ 'libglu' if linux }}", "setuptools <81"]
add_build: ["vcstool", "setuptools <81"]
add_run: ["assimp"]
pcl_conversions:
add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "libboost-devel"]
Expand Down Expand Up @@ -171,9 +171,11 @@ velodyne_pointcloud:
add_host: ["libboost-devel"]
# TODO unvendor?!
uncrustify_vendor:
add_build: ["vcstool"]
add_build: ["vcstool", "setuptools <81"]
add_host: ["setuptools <81"]
mimick_vendor:
add_build: ["vcstool"]
add_build: ["vcstool", "setuptools <81"]
add_host: ["setuptools <81"]
gz_cmake_vendor:
# https://github.com/gazebo-release/gz_cmake_vendor/blob/jazzy/CMakeLists.txt#L6 for select the right major version
# (this is true for all gz-* vendor packages) or https://github.com/gazebo-tooling/gazebodistro/blob/master/collection-harmonic.yaml
Expand Down Expand Up @@ -260,3 +262,7 @@ livox_ros_driver2:
add_host: ["livox-sdk2"]
moveit2_tutorials:
add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}"]
openvdb_vendor:
add_host: ["openvdb"]
spatio_temporal_voxel_layer:
add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}"]
18 changes: 18 additions & 0 deletions patch/ros-jazzy-foxglove-bridge.osx.patch
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 611816f..597036e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -185,6 +185,13 @@ target_link_libraries(foxglove_bridge_component
rosx_introspection::rosx_introspection
)

+# The Foxglove SDK bundles Rust crates that call into system frameworks on macOS.
+if(APPLE)
+ find_library(SECURITY_FRAMEWORK Security REQUIRED)
+ find_library(COREFOUNDATION_FRAMEWORK CoreFoundation REQUIRED)
+ target_link_libraries(foxglove_bridge_component ${SECURITY_FRAMEWORK} ${COREFOUNDATION_FRAMEWORK})
+endif()
+
rclcpp_components_register_nodes(foxglove_bridge_component "foxglove_bridge::FoxgloveBridge")
enable_strict_compiler_warnings(foxglove_bridge_component)

diff --git a/src/ros2_foxglove_bridge.cpp b/src/ros2_foxglove_bridge.cpp
index 978c732..4883047 100644
--- a/src/ros2_foxglove_bridge.cpp
Expand Down
14 changes: 7 additions & 7 deletions patch/ros-jazzy-foxglove-bridge.patch
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a72a85b..9550019 100644
index 611816f..7a16ab2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,6 +70,18 @@ else()
@@ -75,6 +75,18 @@ else()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(FOXGLOVE_SDK_PLATFORM "x86_64-unknown-linux-gnu")
set(FOXGLOVE_SDK_SHA "574c3ce006d6131d6519b416f25ef37c5b2a0721ef49c894286c79a5a5e0b4fc")
set(FOXGLOVE_SDK_SHA "8e4967ec7446a06b5a04c47b54bcd4cecff2ad8776e002ef3803ed4a7076841d")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "2ca081fa503211aba4e89fba26f5edf6174e3978620267f95700e1da559922e3")
+ set(FOXGLOVE_SDK_SHA "0799fcb999616fe25d16d7e4b2894adb6f7fa97ce9671bd908d8412505887bec")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(FOXGLOVE_SDK_PLATFORM "x86_64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "c639c62143995bfc79e9cbe9eb9c170269acfa55b733bc2787742a1801d3b7b3")
+ set(FOXGLOVE_SDK_SHA "3e0d7e575e7de9351ae71a0201ede5c00020f2e9d12cc5cd08e2c896033c9fa9")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "3d1fc78ab0e870ad524cecd53857b9297999fe162548459287c477a307fff832")
+ set(FOXGLOVE_SDK_SHA "9bb816d97a69bf8f5b81559027955bf9277fcd60204cd11495dff352f49cb35e")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
+ set(FOXGLOVE_SDK_PLATFORM "x86_64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "f45238d567a9d576ba201f5bc407f0240bbb987f3c2e7cebda562269c7c1c310")
+ set(FOXGLOVE_SDK_SHA "219f84aa184eb1224d8ba35bc84412dc253137e65b3d6c5f0ffd80a8b0c2dbd2")
else()
message(FATAL_ERROR "Unsupported platform/architecture combination: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}")
endif()
93 changes: 58 additions & 35 deletions patch/ros-jazzy-foxglove-bridge.win.patch
Original file line number Diff line number Diff line change
@@ -1,27 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a72a85b..8b69dda 100644
index 611816f..73c9906 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,6 +70,18 @@ else()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(FOXGLOVE_SDK_PLATFORM "x86_64-unknown-linux-gnu")
set(FOXGLOVE_SDK_SHA "574c3ce006d6131d6519b416f25ef37c5b2a0721ef49c894286c79a5a5e0b4fc")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "015d660ede95ad4d37f84e83e8ebbe81545f1d3c9fea4a24667baf692267f151")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(FOXGLOVE_SDK_PLATFORM "x86_64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "07a1903013639ae872be9fcee8ccf72224a20cc142e642063a226ba2c2b54196")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "caa797bad483ee2f1013c39a8997a409a45515f15e62ead9011351f12596f57d")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
+ set(FOXGLOVE_SDK_PLATFORM "x86_64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "906a5658a207dfe929a6b75f39e0064efdb6182d923e695617fcfa10d311f349")
else()
message(FATAL_ERROR "Unsupported platform/architecture combination: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}")
endif()
@@ -91,7 +103,16 @@ else()
@@ -96,7 +96,16 @@ else()
file(GLOB_RECURSE FOXGLOVE_SDK_SOURCES CONFIGURE_DEPENDS "${foxglove_sdk_SOURCE_DIR}/src/*.cpp")
target_sources(foxglove_cpp_static PRIVATE ${FOXGLOVE_SDK_SOURCES})
set_target_properties(foxglove_cpp_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
Expand All @@ -40,10 +21,46 @@ index a72a85b..8b69dda 100644

find_program(GIT_SCM git DOC "Git version control")
diff --git a/src/message_definition_cache.cpp b/src/message_definition_cache.cpp
index f338db9..d766894 100644
index 5ed9d12..83d1490 100644
--- a/src/message_definition_cache.cpp
+++ b/src/message_definition_cache.cpp
@@ -225,16 +225,16 @@ const MessageSpec& MessageDefinitionCache::load_message_spec(
@@ -217,34 +217,52 @@ const MessageSpec& MessageDefinitionCache::load_message_spec(
// Get the package share directory, or throw a PackageNotFoundError
// TODO: FLE-167: Remove warning once ament_index_cpp is updated and synced across all current
// ROS2 distributions.
+#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#elif defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4996)
+#endif
const std::string share_dir = ament_index_cpp::get_package_share_directory(package);
+#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
+#elif defined(_MSC_VER)
+#pragma warning(pop)
+#endif

// Get the rosidl_interfaces index contents for this package
// TODO: FLE-167: Remove warning once ament_index_cpp is updated and synced across all current
// ROS2 distributions.
+#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#elif defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4996)
+#endif
std::string index_contents;
if (!ament_index_cpp::get_resource("rosidl_interfaces", package, index_contents)) {
throw DefinitionNotFoundError(definition_identifier.package_resource_name);
}
+#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
+#elif defined(_MSC_VER)
+#pragma warning(pop)
+#endif

// Find the first line that ends with the filename we're looking for
const auto lines = split_string(index_contents);
Expand All @@ -63,23 +80,29 @@ index f338db9..d766894 100644
std::ifstream file{full_path};
if (!file.good()) {
throw DefinitionNotFoundError(definition_identifier.package_resource_name);
@@ -376,8 +376,8 @@ std::pair<MessageDefinitionFormat, const std::string&> MessageDefinitionCache::g
result = delimiter(root_definition_identifier) + append_recursive(root_definition_identifier);
}

- auto [it, _] = full_text_cache_.emplace(root_package_resource_name, result);
- return {format, it->second};
+ auto [cache_it, _] = full_text_cache_.emplace(root_package_resource_name, result);
+ return {format, cache_it->second};
}

} // namespace foxglove_bridge
diff --git a/src/ros2_foxglove_bridge.cpp b/src/ros2_foxglove_bridge.cpp
index 978c732..83dce52 100644
index 299ae62..4e03aef 100644
--- a/src/ros2_foxglove_bridge.cpp
+++ b/src/ros2_foxglove_bridge.cpp
@@ -1,3 +1,4 @@
+#define _CRT_SECURE_NO_WARNINGS
#include <filesystem>
#include <fstream>
#include <unordered_set>
@@ -201,7 +202,7 @@ FoxgloveBridge::FoxgloveBridge(const rclcpp::NodeOptions& options)
_clientCountPublisher = this->create_publisher<std_msgs::msg::UInt32>(
CLIENT_COUNT_TOPIC, rclcpp::QoS{rclcpp::KeepLast(1)}.transient_local());
auto init_msg = std_msgs::msg::UInt32();
- init_msg.data = _server->clientCount();
+ init_msg.data = static_cast<decltype(init_msg.data)>(_server->clientCount());
_clientCountPublisher->publish(
init_msg); // Initialize transient local topic to current connection count
}
@@ -1109,6 +1110,6 @@ void FoxgloveBridge::publishClientCount() {
}
const auto currentCount = _server->clientCount();
auto msg = std_msgs::msg::UInt32{};
- msg.data = currentCount;
+ msg.data = static_cast<decltype(msg.data)>(currentCount);
_clientCountPublisher->publish(msg);
}
2 changes: 0 additions & 2 deletions pkg_additional_info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -153,5 +153,3 @@ lanelet2_python:
additional_cmake_args: "-DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF"
robot_state_publisher:
additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON"
ur_calibration:
build_number: 15
Loading