Skip to content
This repository has been archived by the owner on Jun 3, 2019. It is now read-only.

freertps compile fail "Policy CMP0057 not set" #37

Open
jwang11 opened this issue Nov 22, 2017 · 9 comments
Open

freertps compile fail "Policy CMP0057 not set" #37

jwang11 opened this issue Nov 22, 2017 · 9 comments

Comments

@jwang11
Copy link

jwang11 commented Nov 22, 2017

Following the guide, I download ros2 source code, and build whole ros2 successfully. However, when I download freertps to src/ros2/freertps, trigger build as below
$ament build src/ros2/freertps

Process package 'freertps' with context:

source_space => /home/jwang/ros2_ws/src/ros2/freertps
build_space => /home/jwang/ros2_ws/build/freertps
install_space => /home/jwang/ros2_ws/install
make_flags => -j8, -l8
build_tests => False

+++ Building 'freertps'
Running cmake because arguments have changed.
==> '. /home/jwang/ros2_ws/build/freertps/cmake__build.sh && /usr/bin/cmake /home/jwang/ros2_ws/src/ros2/freertps -DBUILD_TESTING=0 -DCMAKE_INSTALL_PREFIX=/home/jwang/ros2_ws/install' in '/home/jwang/ros2_ws/build/freertps'
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ament_cmake: 0.0.3 (/home/jwang/ros2_ws/install/share/ament_cmake/cmake)
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.5.2", minimum required is "3")

CMake Warning (dev) at /home/jwang/ros2_ws/install/share/ament_cmake_core/cmake/core/list_append_unique.cmake:30 (if):
Policy CMP0057 is not set: Support new IN_LIST if() operator. Run "cmake
--help-policy CMP0057" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.

IN_LIST will be interpreted as an operator when the policy is set to NEW.
Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
/home/jwang/ros2_ws/install/share/ament_cmake_export_include_directories/cmake/ament_export_include_directories.cmake:41 (list_append_unique)
CMakeLists.txt:12 (ament_export_include_directories)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at /home/jwang/ros2_ws/install/share/ament_cmake_core/cmake/core/list_append_unique.cmake:30 (if):
if given arguments:

"NOT" "element" "IN_LIST" "_AMENT_EXPORT_RELATIVE_INCLUDE_DIRECTORIES"

Unknown arguments specified
Call Stack (most recent call first):
/home/jwang/ros2_ws/install/share/ament_cmake_export_include_directories/cmake/ament_export_include_directories.cmake:41 (list_append_unique)
CMakeLists.txt:12 (ament_export_include_directories)

@jwang11
Copy link
Author

jwang11 commented Nov 22, 2017

I also tried Standalone mode, there is a minor issue in building. After fix it, freertps can listen "Hello" from talk of FastRTPS, however, freertps "talk" to FastRTPS "listener" still doesn't work.

@mikaelarguedas
Copy link
Member

For the CMake issue, changing the cmake minumum required version to 3.5 should fix it.

For the communication issue, IDK, maybe @codebot would have an idea.
Note that we do not actively support, maintain or work on freertps/rmw_freertps at the moment (that's why it's not in the ros2.repos file) so I would expect a few gotchas along the way as the rest of the stack has been moving a lot since then.

@jwang11
Copy link
Author

jwang11 commented Nov 22, 2017

@mikaelarguedas you mentioned this project not active support so far. do you accept patch to fix freeRTPS issues? At least, make it support simply talk with FastRTPS

@mikaelarguedas
Copy link
Member

@codebot has been developing the freertps stack since it's debuts, I'll leave it to his discretion to advise on the best way to move this project forward (taking PRs here, encourage a fork, something else ?)

@codebot
Copy link
Member

codebot commented Nov 22, 2017

As @mikaelarguedas stated, we are not currently allocating any internal development effort towards freertps, and have not done so for a while now (2 years or so). However, we will try to review and merge patches.

Note that if you are interested in using DDS/RTPS on really really small platforms (like small microcontrollers) in the years since we did this exploration work in freertps, there has been a lot of great work done for DDS-XRCE by several companies. I would suggest spending some serious time reviewing and following along with their various design processes and implementation work. Thank you for your interest! Cheers ❤️

@jwang11
Copy link
Author

jwang11 commented Nov 22, 2017

Thanks @codebot , I notice rti, eProsima and others have DSS-XRCE solution. However, they have license limitation, not pure OSS . My thought is, recover freeRTPS by implement minimal RTPS spec and talk correctly with default ROS2 dds, so others can easily expand and customize their product based on it.

@mikaelarguedas
Copy link
Member

I notice rti, eProsima and others have DSS-XRCE solution. However, they have license limitation, not pure OSS.

The XRCE spec is still under discussion at OMG and thus there is not yet a real "product" implementing it. However several DDS vendors opened the implementation of their proposal of XRCE under Apache 2.0 licence (the same licence used for the ROS 2 codebase).

PrismTech:
https://discourse.ros.org/t/zenoh-zero-network-overhead-protocol/3148

eProsima also mentionned they will/(have?) released theirs under Apache 2 licence:

We are releasing this as Open Source (Apache 2) so anyone can review the results.

from https://discourse.ros.org/t/ipc-in-ros2/2619/14

Maybe @JaimeMartin can give a pointer to a github repository for you to try it out.

@JaimeMartin
Copy link

Hi @mikaelarguedas,

Yes, we are about to publish the first beta of the XRCE DDS submission, and Apache 2.0 of course. We will publish the code in github first week of december.

@mikaelarguedas
Copy link
Member

awesome thanks @JaimeMartin for the quick answer (and for the openness of the code of course!)

jwang11 added a commit to jwang11/freertps that referenced this issue Dec 13, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants