[Rock-dev] Error RTT_PLUGIN_rtt-marshalling NOT FOUND. in orogen gnerated modules.

Peter Soetens peter at thesourceworks.com
Mon Mar 28 11:42:37 CEST 2011


On Monday 28 March 2011 10:47:04 Sylvain Joyeux wrote:
> On 03/26/2011 10:48 PM, Peter Soetens wrote:
> > On Sat, Mar 26, 2011 at 12:56 PM, gprizzi at tin.it<gprizzi at tin.it>  wrote:
> >>   Dear Sirs,
> >> 
> >> I have a fresh install of toolchain-2.3.0 on ubuntu 10.10 with xenomai
> >> patch.
> > 
> > Did you use the tar release or the bootstrap.sh ?  There was a patch
> > for orogen here :
> > http://www.gitorious.org/orocos-toolchain/orogen/commit/d31125768af63ed3e
> > f09a6a03c9eafe6e5a5b41f
> > 
> > Which fixes the FindRTTPlugin.cmake logic to find the marshalling
> > plugins. It will be part of a bootstrap after march 14, or you could
> > run autoproj update to get this fix as well.
> > 
> >> I created my modules using the command
> >> 
> >> orogen --target=xenomai -v mymodule.orogen
> >> 
> >> I need to use rtt-marshalling library so I modified the orogen generated
> >> CMakeLists.txt as follows:
> >> 
> >> 1) CMakeLists.txt in the root project
> >> 
> >> PROJECT(rosetta)
> >> cmake_minimum_required(VERSION 2.6)
> >> 
> >> SET (CMAKE_MODULE_PATH  "${CMAKE_SOURCE_DIR}/.orogen/config")
> >> INCLUDE(rosettaBase)
> >> 
> >> find_package(RTTPlugin REQUIRED rtt-marshalling)
> >> find_package(RTTPlugin COMPONENTS rtt-marshalling)
> >> target_link_libraries(Rosetta ${RTT_PLUGIN_rtt-marshalling_LIBRARIES})
> >> 
> >> # FIND_PACKAGE(KDL)
> >> # FIND_PACKAGE(OCL)
> >> 
> >> 
> >> 2) CMakeLists.txt in tasks directory
> >> 
> >> # Generated from orogen/lib/orogen/templates/tasks/CMakeLists.txt
> >> 
> >> include(rosettaTaskLib)
> >> 
> >> find_package(RTTPlugin REQUIRED rtt-marshalling)
> >> 
> >> ADD_LIBRARY(${ROSETTA_TASKLIB_NAME} SHARED
> >> 
> >>      ${ROSETTA_TASKLIB_SOURCES})
> >> 
> >> add_dependencies(${ROSETTA_TASKLIB_NAME}
> >> 
> >>      regen-typekit)
> >> 
> >> TARGET_LINK_LIBRARIES(${ROSETTA_TASKLIB_NAME}
> >> 
> >>      ${OrocosRTT_LIBRARIES}
> >>      ${ROSETTA_TASKLIB_DEPENDENT_LIBRARIES}
> >> 
> >> ${RTT_PLUGIN_rtt-marshalling_LIBRARIES})
> >> SET_TARGET_PROPERTIES(${ROSETTA_TASKLIB_NAME}
> >> 
> >>      PROPERTIES LINK_INTERFACE_LIBRARIES
> >> 
> >> "${ROSETTA_TASKLIB_INTERFACE_LIBRARIES}")
> >> 
> >> INSTALL(TARGETS ${ROSETTA_TASKLIB_NAME}
> >> 
> >>      RUNTIME DESTINATION bin
> >>      LIBRARY DESTINATION lib/orocos)
> >> 
> >> INSTALL(FILES ${ROSETTA_TASKLIB_HEADERS}
> >> 
> >>      DESTINATION include/orocos/rosetta)
> >> 
> >> Running, from the build directory, the command cmake ..
> >> -DCMAKE_INSTALL_PREFIX=$HOME/orocosComponents
> >> I get the following output
> >> 
> >> cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/orocosComponents
> >> -- The C compiler identification is GNU
> >> -- The CXX compiler identification is GNU
> >> -- Check for working C compiler: /usr/bin/gcc
> >> -- Check for working C compiler: /usr/bin/gcc -- works
> >> -- Detecting C compiler ABI info
> >> -- Detecting C compiler ABI info - 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
> >> -- Performing Test CXX_SUPPORTS_WALL
> >> -- Performing Test CXX_SUPPORTS_WALL - Success
> >> -- Found Doxygen: /usr/bin/doxygen
> >> -- documentation can be built
> >> -- checking for module 'orocos-rtt-xenomai>=2.1.0'
> >> --   found orocos-rtt-xenomai, version 2.3.0
> >> -- checking for module 'typelib'
> >> --   found typelib, version 1.1
> >> -- checking for module 'orocos-rtt-corba-xenomai>=2.1.0'
> >> --   found orocos-rtt-corba-xenomai, version 2.3.0
> >> -- Orocos reports in
> >> /usr/src/orocos/install/include/rtt/transports/corba/rtt-corba-config.h
> >> to use the OMNIORB
> >> -- checking for module 'orocos-ocl-xenomai>=2.1.0'
> >> --   found orocos-ocl-xenomai, version 2.3.0
> >> -- OCL found, the generated task library will be compatible with the
> >> deployer component
> >> -- Optional library RTT_PLUGIN_rtt-marshalling NOT FOUND. If the library
> >> is already installed, use the RTT_PLUGIN_rtt-marshalling_ROOT_DIR
> >> environment variable or ccmake to set the missing variables manually.
> >> -- Found RTT_PLUGIN_rtt-typekit
> >> -- Found RTT_PLUGIN_rtt-transport-corba
> >> -- Optional library RTT_PLUGIN_rtt-marshalling NOT FOUND. If the library
> >> is already installed, use the RTT_PLUGIN_rtt-marshalling_ROOT_DIR
> >> environment variable or ccmake to set the missing variables manually.
> >> -- Optional library RTT_PLUGIN_rtt-marshalling NOT FOUND. If the library
> >> is already installed, use the RTT_PLUGIN_rtt-marshalling_ROOT_DIR
> >> environment variable or ccmake to set the missing variables manually.
> >> -- Configuring done
> >> -- Generating done
> >> -- Build files have been written to: /root/rock/Rosetta10/build
> >> 
> >> 
> >> I checked that  librtt-marshalling-xenomai.so library
> >> is stored in /usr/src/orocos/install/lib/orocos/xenomai/plugins/
> >> 
> >> I tried even the command
> >> 
> >> cmake ..
> >> -DRTT_PLUGIN_rtt-marshalling_ROOT_DIR=/usr/src/orocos/install/lib/orocos
> >> /xenomai/plugins/librtt-marshalling-xenomai.so
> >> 
> >> but I got the same error.
> >> 
> >> To solve the problem I had to modify the  CMAKE_MODULE_PATH int
> >> CMakeLists.txt in the root project, as shownn below.
> >> 
> >> PROJECT(rosetta)
> >> cmake_minimum_required(VERSION 2.6)
> >> 
> >> SET (CMAKE_MODULE_PATH  "/usr/src/orocos/ocl/config/"
> >> "${CMAKE_SOURCE_DIR}/.orogen/config"})
> >> INCLUDE(rosettaBase)
> >> 
> >> find_package(RTTPlugin REQUIRED rtt-marshalling)
> >> target_link_libraries(Rosetta ${RTT_PLUGIN_rtt-marshalling_LIBRARIES})
> >> 
> >> # FIND_PACKAGE(KDL)
> >> # FIND_PACKAGE(OCL)
> >> 
> >> Is this the desired behaviour of orogen generated CMakeLists.txt ?
> > 
> > The FindRTTPlugin.cmake in OCL had already this fix. So your fix picks
> > up that version and is indeed a workaround, but orogen will be fixed
> > in 2.3.1 too.
> 
> He's using rock (as far as I know), and I did not merge OCL in rock's
> orogen yet -- I want to test it beforehand.
> 
> I'll update the FindRTTPlugin.cmake shipped with orogen

Both OCL's and orogens version differ significantly. A quick fix for orogen is to 
add the 'orocos/${OROCOS_TARGET}/plugins' as a hint path, which was apparently 
accidentally omitted.

> 
> This is clearly a rock-specific issue (at least for now), so I'm
> removing all the other mailing lists

Peter


More information about the Rock-dev mailing list