ros2 / rcl_logging

Logging implementations for ROS 2.
Apache License 2.0
20 stars 36 forks source link

Dependency Availability on ROS2 Platforms #1

Closed mjcarroll closed 5 years ago

mjcarroll commented 5 years ago

So when trying to get this to build for ros2/rcl#327, I realized that the log4cxx dependency isn't readily satisfiable on all of the platforms that we expect to support, causing build failures (https://github.com/ros2/rcl/pull/327#issuecomment-444338710).

For Ubuntu Linux, this should be relatively easy to add, because it is available through apt, but in order to get this out for ros2, we'll need to get those dependencies available on MacOS and Windows as well (especially for making something as core as rcl or rcutils depend on it).

For Windows, the best approach would be to have a choco package available (which there is currently not), or alternative provide a vendor package, as we have choosen to do for various other dependencies.

nburek commented 5 years ago

I've added a noop logger package to this repository as well and COLCON_IGNORED the log4cxx package to unblock any CI builds. I'm actively working on getting a Windows machine setup so I can work on the solution to the dependency issue.

chapulina commented 5 years ago

@nburek , I believe this package needs to go into https://github.com/ros2/ros2/blob/master/ros2.repos

nburek commented 5 years ago

@nburek , I believe this package needs to go into https://github.com/ros2/ros2/blob/master/ros2.repos

@chapulina Yes, you are correct that it needs to be added to the ros2.repos list. I hadn't done that yet because I wasn't sure if OSRF would prefer that this repository live in the ros2 organization or not. To unblock the PR and builds I'll add this repository from my account to the list as part of the PR and we can change it later if desired.

chapulina commented 5 years ago

+1 to adding it now, we can always move the repository across orgs and update the references as needed. Thanks!

nburek commented 5 years ago

Quick status update on this issue. We have a fix complete for building on MAC by using brew to install log4cxx. We are also nearly finished creating a Chocolaty package for Windows. We've been able to test building on Windows works when the library is linked properly and just need to finish the work to make the log4cxx install from the choco package findable from cmake. That work should be done in the next couple of days as well.

mjcarroll commented 5 years ago

Nice! Thanks for the update @nburek.

nburek commented 5 years ago

We've submitted Pull requests for these, but there will be some setup work on the build farm to make sure this doesn't break them once pushed. We will need to add the new log4cxx dependency to the OS X and Windows machines using brew and choco.

There is a known issue with the Windows build that forces us to use a Debug build on Windows. I will open a new issue to track fixing that.

https://github.com/ros2/rcl_logging/pull/3

mjcarroll commented 5 years ago

Windows dependency should be resolved by: https://github.com/ros2/choco-packages/pull/7

clalancette commented 5 years ago

log4cxx is available on the all of the platforms now. Though we are switching to spdlog as the default backend anyway, so this is less important. Closing this out.