Open rotu opened 4 years ago
I do have this package installed:
libtinyxml-dev/focal,now 2.6.2-4build1 amd64 [installed]
though CMakeCache shows some weirdness with TinyXML_DIR
:
//The directory containing a CMake configuration file for TinyXML.
TinyXML_DIR:PATH=TinyXML_DIR-NOTFOUND
//Path to a file.
TinyXML_INCLUDE_DIR:PATH=/usr/include
//Path to a library.
TinyXML_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libtinyxml.so
It looks like this is because of TIXML_USE_STL
, which needs to be set when the library is built. I'm guessing that was not the case when the libtinyxml-dev
package and its dependencies were built.
I resolved this locally with:
colcon build --packages-select tinyxml_vendor urdfdom --cmake-clean-cache --cmake-args -DFORCE_BUILD_VENDOR_PKG=1
@nuclearsandwich is there a compelling reason to keep using tinyxml
as well as tinyxml2
? (Confusingly, tinyxml
seems to be on major version number 2) It seems tinyxml is no longer under development and has been superseded by tinyxml2.
Unfortunately, there are some downstreams (like urdf, urdfdom, kdl_parser, rviz_common) that still rely on it. Worse, some of them rely on it in their public headers (which implies a deprecation cycle to deprecate those APIs). It's a long term goal to get rid of those, but we haven't gotten around to it.
Created https://github.com/ros2/urdfdom/pull/17 to see if I could. It doesn't seem like anyone's really using these public functions in the ROS2 codebase outside of urdf
https://index.ros.org/p/urdfdom/github-ros2-urdfdom/#eloquent-deps
Given that this is a common source of confusion, it may be worth to mention that actually ROS2 is using a fork of this repo ( https://github.com/ros2/urdfdom ) that unfortunately has quite diverged with respect to the version of urdfdom
contained in this repo.
@traversaro Excellent point. This looks like one of those repositories where we should merge the two back together, and the update the ros2 branch to look more like the ros1 branch(es). I'll put it on my TODO list to look at, though this will likely happen after Foxy release.
:+1: to merging them. The ros2 fork doesn't have an issue tracker, which is why I created the issue here instead.
We could even go a step further and roll the urdfdom
package into the urdf
repo.
We could even go a step further and roll the
urdfdom
package into theurdf
repo.
There are some (additional) complications with that, but I agree in principle. I'll probably work on merging the ros1 and ros2 forks together first, then we can take up that question.
Ubuntu focal / Clang 11 / libc++ Building from ROS2 master.