YARP 2.4 Migration

From Wiki for iCub and Friends
Revision as of 12:55, 9 December 2013 by Lorenzo (talk | contribs) (Things that change in iCub)
Jump to: navigation, search

This page is still work in progress.

Migrating from YARP 2.3 to YARP 2.4 might require some changes to your code.

Things that change in iCub

  • Remove references to ICUB_ROOT in ResourceFinder configuration
  • No need to set ICUB_ROOT environment variable
  • ICUB_ROOT.ini is obsolete
  • Target install_application and ICUB_INSTALL_APPLICATIONS cmake flag removed, now applications and other files are with the binaries both in the build and in the installation directory
  • Updated installation instructions:

ICub Software Installation

  • Repository description Better_Repository, in particular CMake templates have been updated:

Simple template for modules in main

Simple template for libraries in main

Simple template for modules in contrib

Simple template for libraries in contrib

  • Before you compile modules in contrib you have to set up the contrib package (this is described in the installation instructions)
  • cmake functions for applications like icub_app()/icub_app_install() are obsolete, use yarp_install() instead
  • Devices:
controlBoardWrapper2
analogServer 
virtualAnalogServer

have been moved to yarp. The version in icubmod is deprecated and will be removed.

  • YARP_ROBOT_NAME

Changes in YARP

List of incompatible changes

This is a list of incompatible changes from YARP 2.3 series to YARP 2.4

CMake

YARP_MODULE_PATH

cmake variable YARP_MODULE_PATH is a real "PATH" and therefore could be a list and not a single directory. This might break in a few cases (i.e. when used in include(${YARP_MODULE_PATH}/something.cmake)) There are 2 options to fix this:

  • Use the variable YARP_MODULE_DIR instead of YARP_MODULE_PATH:
    include(${YARP_MODULE_DIR}/something.cmake)
  • Add YARP_MODULE_PATH to the CMAKE_MODULE_PATH variable and use the filename without the path and the extension :
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${YARP_MODULE_PATH})
    include(something)


Ongoing discussions