make cyclonedds vender package play nice with colcon (#34)

* Un-vendor cyclonedds

Upstream changes in https://github.com/eclipse-cyclonedds/cyclonedds/pull/256 should make this unnecessary and allow you to clone the package into your ROS workspace.

* Remove obsolete gitignore

* Recommend cloning eclipse-cyclonedds/cyclonedds
This commit is contained in:
Dan Rose 2019-09-18 12:49:39 -05:00 committed by eboasson
parent e849c71122
commit b39efafd62
5 changed files with 4 additions and 44 deletions

View file

@ -11,14 +11,12 @@ source directory, and then run colcon build in the usual manner:
cd ros2_ws/src
git clone https://github.com/atolab/rmw_cyclonedds
git clone https://github.com/eclipse-cyclonedds/cyclonedds
cd ..
rosdep install --from src -i
colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCYCLONEDDS_FROM_SOURCE=ON
colcon build
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
If you prefer to install CycloneDDS yourself, set `-DCYCLONEDDS_FROM_SOURCE=OFF`. CMake caches this
value, so you can omit it between builds
This seems to work fine on Linux with a binary ROS2 installation as well as when building ROS2 from
source. On macOS it has only been tested in a source build on a machine in an "unsupported"
configuration (macOS 10.14 with SIP enabled, instead of 10.12 with SIP disabled), and apart from a
@ -26,7 +24,7 @@ few details that are caused by the machine configuration, that works fine, too.
why it wouldn't work the same on Windows, but I haven't tried.
If you want to use a pre-existing installation of Cyclone DDS, you don't need to clone it, but you
may have to tell CMake where to look for it using the CycloneDDS\_DIR variable. That also appears
may have to tell CMake where to look for it using the `CycloneDDS_DIR` variable. That also appears
to be the case if there are other packages in the ROS2 workspace that you would like to use Cyclone
DDS directly instead of via the ROS2 abstraction.

View file

@ -1,14 +0,0 @@
cmake_minimum_required(VERSION 3.5)
project(cyclonedds_vendor)
find_package(ament_cmake REQUIRED)
include(ExternalProject)
ExternalProject_Add(cyclonedds
GIT_REPOSITORY "https://github.com/eclipse-cyclonedds/cyclonedds.git"
CMAKE_ARGS
-DBUILD_CONFTOOL:BOOL=OFF
-DBUILD_IDLC:BOOL=OFF
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
)
ament_package()

View file

@ -1,15 +0,0 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>cyclonedds_vendor</name>
<version>0.4.0</version>
<description>Wrapper package for Eclipse CycloneDDS.</description>
<maintainer email="erik.boasson@adlinktech.com">Erik Boasson</maintainer>
<license>Apache License 2.0</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>

View file

@ -16,8 +16,6 @@ cmake_minimum_required(VERSION 3.5)
project(rmw_cyclonedds_cpp)
set(CYCLONEDDS_FROM_SOURCE CACHE BOOL "Should we download and build cycloneDDS from source?")
link_directories(/usr/local/lib)
# Default to C++14
@ -33,13 +31,7 @@ find_package(ament_cmake_ros REQUIRED)
find_package(rcutils REQUIRED)
if(CYCLONEDDS_FROM_SOURCE)
message("Building CycloneDDS from source")
find_package(cyclonedds_vendor REQUIRED)
else()
find_package(cyclonedds_cmake_module REQUIRED)
message("Using installed CycloneDDS")
endif()
find_package(CycloneDDS REQUIRED CONFIG)
find_package(rmw REQUIRED)

View file

@ -14,7 +14,6 @@
<build_depend>cyclonedds</build_depend>
<build_depend>cyclonedds_cmake_module</build_depend>
<build_depend>cyclonedds_vendor</build_depend>
<build_depend>rcutils</build_depend>
<build_depend>rmw</build_depend>