Skip to content

Commit 2958257

Browse files
facontidavideDavide Faconticlaude
authored
Prep v1.2.1: BUILD_SHARED_LIBS support + Rolling CI fix (#106)
* build(cloudini_lib): honor BUILD_SHARED_LIBS for standalone builds Outside ament/ROS, the library was hardcoded to STATIC, which prevented package managers (Conan, vcpkg) and downstream CMake projects from producing a shared libcloudini_lib.so by setting -DBUILD_SHARED_LIBS=ON. Dropping the explicit STATIC keyword lets CMake's standard BUILD_SHARED_LIBS variable decide. Default behavior is unchanged (static when BUILD_SHARED_LIBS is unset or OFF). The ament branch still forces SHARED for pluginlib compatibility. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci(rolling): build point_cloud_interfaces from source ros-rolling-point-cloud-interfaces was dropped from the apt sync circa 2026-04-25, breaking the Rolling job that depends on the CompressedPointCloud2 message type. Restore the build by importing the package from ros-perception/point_cloud_transport_plugins via vcstool. Also drop `continue-on-error: true` now that the underlying cause is addressed -- Rolling failures will once again gate the branch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci(rolling): checkout sources before vcs import The .repos file path passed to action-ros-ci.vcs-repo-file-url resolves against ${{ github.workspace }}, but action-ros-ci checks the repo out to its own ros_ws/src/ directory (not to the workspace root), so the file was missing when vcs import ran. Add an explicit actions/checkout step before action-ros-ci so the path resolves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Davide Faconti <dfaconti@aurynrobotics.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b7c835d commit 2958257

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

.github/workflows/rolling.repos

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
repositories:
2+
point_cloud_transport_plugins:
3+
type: git
4+
url: https://github.com/ros-perception/point_cloud_transport_plugins.git
5+
version: rolling

.github/workflows/ros-rolling.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ concurrency:
1414
jobs:
1515
build:
1616
runs-on: ubuntu-latest
17-
# Rolling is allowed to fail: ros-rolling-point-cloud-interfaces was dropped
18-
# from the apt sync circa 2026-04-25 (last green Rolling on main: 2026-04-20).
19-
# Remove this once upstream restores the package or we migrate off it.
20-
continue-on-error: true
2117
container:
2218
image: rostooling/setup-ros-docker:ubuntu-noble-ros-rolling-ros-base-latest
2319
steps:
20+
# action-ros-ci checks the repo out to its own ros_ws/src, not to
21+
# ${{ github.workspace }}. Do an explicit checkout first so the
22+
# .repos file passed to vcs-repo-file-url below is reachable.
23+
- uses: actions/checkout@v4
24+
2425
- uses: ros-tooling/setup-ros@v0.7
2526
with:
2627
required-ros-distributions: rolling
@@ -33,12 +34,15 @@ jobs:
3334
sudo apt-get update
3435
sudo apt-get install -y --only-upgrade $(dpkg -l 'ros-rolling-*' | awk '/^ii/{print $2}' | tr '\n' ' ')
3536
37+
# point_cloud_interfaces was dropped from the Rolling apt sync circa 2026-04-25.
38+
# Build it from source via vcstool until it reappears in the binary repo.
3639
- uses: ros-tooling/action-ros-ci@v0.4
3740
with:
3841
package-name: |
3942
cloudini_lib
4043
cloudini_ros
4144
target-ros2-distro: rolling
45+
vcs-repo-file-url: ${{ github.workspace }}/.github/workflows/rolling.repos
4246
colcon-defaults: |
4347
{
4448
"build": {

cloudini_lib/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,14 @@ SET(CLOUDINI_SRC
8383
)
8484

8585
if(ament_cmake_FOUND)
86+
# ROS/ament always builds shared so the plugin pluginlib can dlopen it.
8687
add_library(cloudini_lib SHARED
8788
${CLOUDINI_SRC}
8889
${PCL_SRC}
8990
)
9091
else()
91-
add_library(cloudini_lib STATIC
92+
# Standalone builds honor BUILD_SHARED_LIBS (static by default).
93+
add_library(cloudini_lib
9294
${CLOUDINI_SRC}
9395
${PCL_SRC}
9496
)

0 commit comments

Comments
 (0)