Conversation
6 tasks
…kaging Co-authored-by: salhus <84348506+salhus@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix runtime dependencies resolution in package step for SEA-Stack
Fix Sep 17, 2026
--package runtime dependency resolution for user-prefix Chrono and ROS-provided urdfdom
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
install(TARGETS ... RUNTIME_DEPENDENCIES)usesfile(GET_RUNTIME_DEPENDENCIES), which ignoresLD_LIBRARY_PATHby design and only searches the binary'sINSTALL_RPATH($ORIGIN/../lib, empty at install time) plus system paths. Packaging therefore fails to resolvelibChrono_core.so(user prefix) andliburdfdom_model.so.4.0(ROS, inlib/x86_64-linux-gnu/), even though the build and link succeed.Changes (top-level
CMakeLists.txt)SEASTACK_RUNTIME_DEP_DIRScache variable for user-supplied paths, augmented with the directory derived fromChrono::Chrono_core'sIMPORTED_LOCATION_RELEASE/IMPORTED_LOCATION, passed asDIRECTORIESto both the APPLE and non-APPLE install calls. Chrono is SEA-Stack's own dependency and stays in the bundle.^/opt/ros/added toPOST_EXCLUDE_REGEXES. urdfdom arrives transitively throughChrono::Chrono_parsers; ROS is an external runtime requirement, and vendoring it would make the archive distro-specific._seastack_dep_dirsis unset alongside_seastack_dep_exclude.With no Chrono target and an empty cache variable,
DIRECTORIESexpands to nothing, leaving the default system-Chrono path behaviour unchanged.Note: a full
--packagerun could not be exercised here (no Eigen3/Chrono in the environment); the install block was validated standalone, including the empty-DIRECTORIEScase.--packagefails to resolve runtime dependencies when Chrono is in a user prefix and urdfdom comes from ROS #19