Difference between revisions of "YARP 2.4 Migration"

From Wiki for iCub and Friends
Jump to: navigation, search
Line 1: Line 1:
''This page is still work in progress''.
+
''This page is still work in progress and may change''.
  
 
Migrating from YARP 2.3 to YARP 2.4 might require some changes to your code.
 
Migrating from YARP 2.3 to YARP 2.4 might require some changes to your code.

Revision as of 12:57, 9 December 2013

This page is still work in progress and may change.

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)