Conversion to plain CMake of abb_libegm (and abb_librws)

For users of abb_libegm and abb_librws: please be aware that we’ve merged ros-industrial/abb_libegm#63 today.

This PR converts abb_libegm (and eventually abb_librws) into a plain CMake package. These packages used to be Catkin packages, but never really made use of any of Catkin’s functionality, nor do they contain any ROS nodes or other ROS infrastructure.

The main rationale for converting these packages is to be able to use them with ROS 1, ROS 2 as well as on non-ROS systems and on OS that support CMake, but not ROS (with all its dependencies). In addition, Windows (10) support is targetted.

The documentation of both these packages will be updated, but just to summarise:

  1. plain CMake packages can be built in ROS Catkin workspaces, but only catkin_make_isolated or catkin_tools can be used in that case. Regular catkin_make cannot build workspaces with non-Catkin packages in it. If you wish to keep using catkin_make, build abb_libegm and abb_librws in an underlay first (using catkin_tools or catkin_make_isolated), then extend that underlay with your regular workspace.
  2. abb_libegm and abb_librws might not work any more in find_package(catkin .. COMPONENTS ..) calls. Instead, find_package(abb_libegm REQUIRED) separately, and then use the appropriate _LIBRARIES and _INCLUDE_DIRS variables or make use of the abb_libegm::abb_libegm and abb_librws::abb_librws targets directly.

ros-industrial/abb_libegm#63 introduces changes to the build system only. No functional changes are included. Ubuntu Xenial and Ubuntu Bionic are still supported. Future versions of these packages might require newer versions of CMake, but this will depend on availability of specific functionality.

If you find something doesn’t work as it did, or should, please post an issue on the issue tracker and we’ll try to help you.

2 Likes