Skip to content
Draft
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
2 changes: 1 addition & 1 deletion .github/workflows/testpr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:
- name: Delete specific outdated cache entries
shell: bash -l {0}
run: |
# rm -rf ${{ matrix.folder_cache }}/ros-rolling-moveit-setup-srdf-plugins* 2>/dev/null || true
rm -rf ${{ matrix.folder_cache }}/ros-rolling-gz-dartsim* 2>/dev/null || true
mkdir -p ${{ matrix.folder_cache }}
pixi run rattler-index fs ${{ matrix.folder_cache }}/.. --force

Expand Down
2 changes: 1 addition & 1 deletion conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
numpy:
- 2
assimp:
- 6.0.3
- 6.0.5
libprotobuf:
- 6.33.5
protobuf:
Expand Down
17 changes: 17 additions & 0 deletions patch/ros-rolling-apriltag-ros.osx.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20bdedf..4e9d53d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,8 +5,10 @@ project(apriltag_ros)
set(CMAKE_CXX_STANDARD 14)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- add_compile_options(-Werror -Wall -Wextra -Wpedantic)
- add_link_options("-Wl,-z,relro,-z,now,-z,defs")
+ if(NOT APPLE)
+ add_compile_options(-Werror -Wall -Wextra -Wpedantic)
+ add_link_options("-Wl,-z,relro,-z,now,-z,defs")
+ endif()
endif()

option(ASAN "use AddressSanitizer to detect memory issues" OFF)
82 changes: 0 additions & 82 deletions patch/ros-rolling-apriltag-ros.patch

This file was deleted.

59 changes: 18 additions & 41 deletions patch/ros-rolling-foxglove-bridge.osx.patch
Original file line number Diff line number Diff line change
@@ -1,31 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71deedd3..15821a4e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -86,9 +86,15 @@ target_include_directories(foxglove_cpp_shared SYSTEM
target_sources(foxglove_cpp_shared PRIVATE ${FOXGLOVE_SDK_SOURCES})
# Import the prebuilt C shared library from the fetched SDK
add_library(foxglove-shared SHARED IMPORTED)
-set_target_properties(foxglove-shared PROPERTIES
- IMPORTED_LOCATION ${foxglove_sdk_SOURCE_DIR}/lib/libfoxglove.so
-)
+if(APPLE)
+ set_target_properties(foxglove-shared PROPERTIES
+ IMPORTED_LOCATION ${foxglove_sdk_SOURCE_DIR}/lib/libfoxglove.dylib
+ )
+else()
+ set_target_properties(foxglove-shared PROPERTIES
+ IMPORTED_LOCATION ${foxglove_sdk_SOURCE_DIR}/lib/libfoxglove.so
+ )
+endif()
target_link_libraries(foxglove_cpp_shared PRIVATE foxglove-shared)
set_target_properties(foxglove_cpp_shared PROPERTIES
INSTALL_RPATH "$ORIGIN"
diff --git a/src/ros2_foxglove_bridge.cpp b/src/ros2_foxglove_bridge.cpp
index 2229aadc..9431dbdd 100644
index 601db6c..fc18e1c 100644
--- a/src/ros2_foxglove_bridge.cpp
+++ b/src/ros2_foxglove_bridge.cpp
@@ -479,7 +479,7 @@ void FoxgloveBridge::updateAdvertisedTopics(
@@ -492,7 +492,7 @@ void FoxgloveBridge::updateAdvertisedTopics(
const TopicAndDatatype topicAndSchemaName = {topic, schemaName};
if (latestTopics.find(topicAndSchemaName) == latestTopics.end()) {
const auto channelId = channel.id();
Expand All @@ -34,7 +11,7 @@ index 2229aadc..9431dbdd 100644
topic.c_str(), schemaName.c_str());
// Remove any active subscriptions for this channel
_subscriptions.erase(channelId);
@@ -549,7 +549,7 @@ void FoxgloveBridge::updateAdvertisedTopics(
@@ -562,7 +562,7 @@ void FoxgloveBridge::updateAdvertisedTopics(
}

const ChannelId channelId = channelResult.value().id();
Expand All @@ -43,7 +20,7 @@ index 2229aadc..9431dbdd 100644
topic.c_str());
_channels.insert({channelId, std::move(channelResult.value())});
}
@@ -814,7 +814,7 @@ void FoxgloveBridge::subscribeConnectionGraph(bool subscribe) {
@@ -827,7 +827,7 @@ void FoxgloveBridge::subscribeConnectionGraph(bool subscribe) {
}

void FoxgloveBridge::subscribe(ChannelId channelId, const foxglove::ClientMetadata& client) {
Expand All @@ -52,7 +29,7 @@ index 2229aadc..9431dbdd 100644
channelId, client.id);
createOrIncrementSubscription(channelId, client.id, false, client.sink_id);
}
@@ -867,7 +867,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
@@ -880,7 +880,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
std::optional<SinkId> sinkId) {
auto channelIt = _channels.find(channelId);
if (channelIt == _channels.end()) {
Expand All @@ -61,7 +38,7 @@ index 2229aadc..9431dbdd 100644
channelId);
return;
}
@@ -898,7 +898,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
@@ -911,7 +911,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
auto [it, inserted] = _subscriptions.emplace(channelId, std::move(channelSub));
subIt = it;

Expand All @@ -70,7 +47,7 @@ index 2229aadc..9431dbdd 100644
topic.c_str(), datatype.c_str(), channelId);
}

@@ -922,7 +922,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
@@ -935,7 +935,7 @@ void FoxgloveBridge::createOrIncrementSubscriptionLocked(ChannelId channelId, Cl
}

void FoxgloveBridge::unsubscribe(ChannelId channelId, const foxglove::ClientMetadata& client) {
Expand All @@ -79,7 +56,7 @@ index 2229aadc..9431dbdd 100644
channelId, client.id);
removeOrDecrementSubscription(channelId, client.id, false);
}
@@ -938,7 +938,7 @@ void FoxgloveBridge::removeOrDecrementSubscriptionLocked(ChannelId channelId, Cl
@@ -951,7 +951,7 @@ void FoxgloveBridge::removeOrDecrementSubscriptionLocked(ChannelId channelId, Cl
auto subIt = _subscriptions.find(channelId);
if (subIt == _subscriptions.end()) {
RCLCPP_ERROR(this->get_logger(),
Expand All @@ -88,7 +65,7 @@ index 2229aadc..9431dbdd 100644
clientId, channelId);
return;
}
@@ -953,7 +953,7 @@ void FoxgloveBridge::removeOrDecrementSubscriptionLocked(ChannelId channelId, Cl
@@ -966,7 +966,7 @@ void FoxgloveBridge::removeOrDecrementSubscriptionLocked(ChannelId channelId, Cl
// If no more subscribers, destroy the ROS subscription
if (subIt->second.wsClientIds.empty() && subIt->second.gatewayClientIds.empty()) {
RCLCPP_INFO(this->get_logger(),
Expand All @@ -97,7 +74,7 @@ index 2229aadc..9431dbdd 100644
_subscriptions.erase(subIt);
}
}
@@ -1092,7 +1092,7 @@ void FoxgloveBridge::clientUnadvertise(ClientId clientId, ChannelId clientChanne
@@ -1105,7 +1105,7 @@ void FoxgloveBridge::clientUnadvertise(ClientId clientId, ChannelId clientChanne

const auto& publisher = it->second.publisher;
RCLCPP_INFO(this->get_logger(),
Expand All @@ -106,7 +83,7 @@ index 2229aadc..9431dbdd 100644
publisher->get_topic_name(), publisher->get_subscription_count(), clientChannelId);

_clientAdvertisedTopics.erase(it);
@@ -1460,13 +1460,13 @@ void FoxgloveBridge::gatewaySubscribe(uint32_t clientId,
@@ -1585,13 +1585,13 @@ void FoxgloveBridge::gatewaySubscribe(uint32_t clientId,
auto sinkId = _gateway->sinkId();
if (!sinkId.has_value()) {
RCLCPP_WARN(this->get_logger(),
Expand All @@ -122,7 +99,7 @@ index 2229aadc..9431dbdd 100644
channel.id(), std::string(channel.topic()).c_str(), clientId);
createOrIncrementSubscription(channel.id(), clientId, true, sinkId);
}
@@ -1474,7 +1474,7 @@ void FoxgloveBridge::gatewaySubscribe(uint32_t clientId,
@@ -1599,7 +1599,7 @@ void FoxgloveBridge::gatewaySubscribe(uint32_t clientId,
void FoxgloveBridge::gatewayUnsubscribe(uint32_t clientId,
const foxglove::ChannelDescriptor& channel) {
RCLCPP_INFO(this->get_logger(),
Expand All @@ -131,7 +108,7 @@ index 2229aadc..9431dbdd 100644
channel.id(), std::string(channel.topic()).c_str(), clientId);
removeOrDecrementSubscription(channel.id(), clientId, true);
}
@@ -1489,7 +1489,7 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,
@@ -1614,7 +1614,7 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,

ChannelAndClientId key = {channelId, clientId};
if (_gatewayClientAdvertisedTopics.find(key) != _gatewayClientAdvertisedTopics.end()) {
Expand All @@ -140,7 +117,7 @@ index 2229aadc..9431dbdd 100644
clientId, channelId, topicName.c_str());
return;
}
@@ -1506,7 +1506,7 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,
@@ -1631,7 +1631,7 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,

if (topicType.empty()) {
RCLCPP_ERROR(this->get_logger(),
Expand All @@ -149,7 +126,7 @@ index 2229aadc..9431dbdd 100644
clientId, channelId, topicName.c_str());
return;
}
@@ -1514,12 +1514,12 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,
@@ -1639,12 +1639,12 @@ void FoxgloveBridge::gatewayClientAdvertise(uint32_t clientId,
try {
auto ad = createClientPublisher(topicName, topicType, encoding, schemaData, schemaLen);
RCLCPP_INFO(this->get_logger(),
Expand All @@ -164,7 +141,7 @@ index 2229aadc..9431dbdd 100644
clientId, channelId, topicName.c_str(), ex.what());
}
}
@@ -1533,13 +1533,13 @@ void FoxgloveBridge::gatewayClientUnadvertise(uint32_t clientId,
@@ -1658,13 +1658,13 @@ void FoxgloveBridge::gatewayClientUnadvertise(uint32_t clientId,

auto it = _gatewayClientAdvertisedTopics.find(key);
if (it == _gatewayClientAdvertisedTopics.end()) {
Expand All @@ -180,7 +157,7 @@ index 2229aadc..9431dbdd 100644
channelId, it->second.topicName.c_str());
_gatewayClientAdvertisedTopics.erase(it);

@@ -1563,7 +1563,7 @@ void FoxgloveBridge::gatewayClientMessage(uint32_t clientId,
@@ -1688,7 +1688,7 @@ void FoxgloveBridge::gatewayClientMessage(uint32_t clientId,
auto it = _gatewayClientAdvertisedTopics.find(key);
if (it == _gatewayClientAdvertisedTopics.end()) {
RCLCPP_ERROR(this->get_logger(),
Expand All @@ -189,7 +166,7 @@ index 2229aadc..9431dbdd 100644
channelId);
return;
}
@@ -1574,7 +1574,7 @@ void FoxgloveBridge::gatewayClientMessage(uint32_t clientId,
@@ -1699,7 +1699,7 @@ void FoxgloveBridge::gatewayClientMessage(uint32_t clientId,
try {
publishClientData(ad, data, dataLen);
} catch (const std::exception& ex) {
Expand Down
44 changes: 22 additions & 22 deletions patch/ros-rolling-foxglove-bridge.patch
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9285c891..d8b058ab 100644
index 8ee07c2..7426013 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,6 +62,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aar
@@ -98,6 +98,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
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 "b949295e80eb1a9bb356e657b9c2579c886717fac290c4e48a5e9846063bf2e8")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "1c6a32fc25c3a29eb9f3c5156f9c82970a8714523ffc3893ea4e852b977ee1e5")
+ 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 "12249d4b2f16c3ff661f21d19603fb33a82888f0391576269f31f9cc1a4cb7a8")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "5d4999f3231fbf06c6c54eee00db9cab5c8a96d043dcf143a401c72bf2efec01")
+ 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 "58c3c5e945623bc02b596f748c82e1c8b82daef7871f11f600ff1a606ac9295d")
else()
message(FATAL_ERROR "Unsupported platform/architecture combination: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}")
endif()
@@ -157,6 +169,12 @@ target_link_libraries(foxglove_bridge_component
set(FOXGLOVE_SDK_PLATFORM "x86_64-unknown-linux-gnu")
set(FOXGLOVE_SDK_SHA "0b9d348df3a8e98d2c2cee2360cc9f52e83bb3445044debd771d1b46dc358be4")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-apple-darwin")
+ set(FOXGLOVE_SDK_SHA "c9dfa5061d72795af2620c2840a85e695b9dacce19475eaec8caf0102c4940ef")
+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 "3531502efd958be3f9dca06a099c167512dd3006b98ac3eecf8250d376eaa16b")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
+ set(FOXGLOVE_SDK_PLATFORM "aarch64-pc-windows-msvc")
+ set(FOXGLOVE_SDK_SHA "da293bf4dac2b973b7c72d1d368932f7f4f989fcac9311d529b93c7d2b84eae9")
+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 "09d2ff5dbb6a5216a303f9470fbec186c0ebd849713570d6b8145a9d22d804af")
else()
message(FATAL_ERROR "Unsupported platform/architecture combination: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}")
endif()
@@ -202,6 +214,12 @@ target_link_libraries(foxglove_bridge_component
rosx_introspection::rosx_introspection
)

Expand All @@ -33,9 +33,9 @@ index 9285c891..d8b058ab 100644
+
rclcpp_components_register_nodes(foxglove_bridge_component "foxglove_bridge::FoxgloveBridge")
enable_strict_compiler_warnings(foxglove_bridge_component)

set_target_properties(foxglove_bridge_component PROPERTIES
diff --git a/src/message_definition_cache.cpp b/src/message_definition_cache.cpp
index ef72c9c1..ed857459 100644
index ef72c9c..ed85745 100644
--- a/src/message_definition_cache.cpp
+++ b/src/message_definition_cache.cpp
@@ -3,6 +3,7 @@
Expand Down
Loading
Loading