Important news: new iCub build and repository structure

From Wiki for iCub and Friends
Revision as of 11:55, 20 July 2010 by Vvv10 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

We have recently implemented a new build system for the iCub software, this affects the build system and the organization of the repository.

New users can just follow the installation instructions on the manual, they have (or should have) been modified for the new repository. Please report errors you encounter.

For "old" users, we recommend you recompile the iCub software and start using the new build in $ICUB_ROOT/main ($ICUB_ROOT/main/CMakeLists.txt, not the one on $ICUB_ROOT/).

The page in the manual: http://eris.liralab.it/wiki/Better_Repository explains in details what changes and how. At the buttom of this page you also find cmake template files for modules.

  • Due to recent ICUB changes, please use YARP from SVN, rather than an official release such as yarp-2.3.0.tar.gz/yarp-2.3.0.zip

Use of the repository at the school

For everyone: unless you have reasons for not doing so, please put the code you develop during the summer school in $ICUB_ROOT/contrib/src.

What changes in brief

The main changes involve the iCub build and how files are organized.

The iCub build was moved to $ICUB_ROOT/main. The idea is that this build will contain modules that are well tested and follow the iCub standards (in particular: dependencies, and development environments). There is a directory in $ICUB_ROOT/contrib that is available for people to store code that compiles independently of the iCub main build. This code can use libraries and modules in the iCub build (by calling find_package(iCub)). There is less pressure for this code to respect iCub standards and dependencies, but the idea is that when a module in contrib is mature it is moved to main. So respecting standards and (more importantly) dependencies will help make the transition smooth.

The new build system uses CMake 2.6 and support out-of-source builds and installation. CMake code was re-written and improved, Find* scripts have been standardized to have similar behavior.