-
Notifications
You must be signed in to change notification settings - Fork 6
Fetch dependencies using FetchContent, remove conan build dependency #27
Conversation
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Do the usage instructions in the README need to be updated? |
Signed-off-by: Jacob Bandes-Storch <[email protected]>
@nuclearsandwich Any thoughts on using submodules? I feel creating vendor packages is better. |
@wep21 whatever approach we take, a specific version of zstd must be statically linked in. Using the existing ros2 package for the dynamically linked zstd won’t work. |
@jhurliman Which function won't work with dynamically linked zstd? The basic functions(pkay, record, info) seem to work fine with vendor package implementation in my environment. |
https://github.com/foxglove/mcap/blob/main/cpp/mcap/include/mcap/writer.inl#L6 https://github.com/foxglove/mcap/blob/main/cpp/mcap/include/mcap/writer.inl#L258-L259 We declare We're on the ROS 2 Tooling WG call right now and an idea that was thrown out is to combine these two approaches, providing a mcap vendor package in the ROS2 ecosystem but building it using submodules or CMake FetchContent to tightly control the version of zstd we pull in and statically link against. |
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Updated to replace submodules with FetchContent. Another approach with a mcap_vendor package is at #28. |
Signed-off-by: Jacob Bandes-Storch <[email protected]>
Addressing feedback from ros/rosdistro#32534 (comment) Make mcap available as a shared library in the mcap_vendor package. It does not depend on lz4/zstd shared libraries but pulls them in directly using FetchContent. mcap itself is also fetched directly from git instead of using conan to pull in the dependency. Closes #26, closes #27 Signed-off-by: Jacob Bandes-Storch <[email protected]>
Alternative to #26
Instead of using conan to fetch mcap & dependencies, or getting them from rosdep (which doesn't work when we need some static-only APIs and want to control the precise dependency version), we fetch the dependency sources using FetchContent.
cc @nuclearsandwich @wep21 @emersonknapp @jhurliman, please review! Thanks 🙂